2013-11-09 41 views
0

我正在开发一些NFC操作的应用程序。现在我正在处理读取标签时间,从发现到完成数据读取。我认为这应该是容易的,所以我所做的:在Android上阅读标记时间

@Override 
public void onNewIntent(final Intent intent) { 
    super.onNewIntent(intent); 
    if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(intent.getAction())) { 
     startReadTime = System.currentTimeMillis(); // i am reading time if Tag is doscovered 
     new Thread(new Runnable() { 
      public void run() { 
       ReadContent(intent); 
      } 
     }).start(); 
    } 

} 

而且读取标签数据

private void ReadContent(Intent intent) { 
    NdefMessage[] messages = null; 
    Parcelable[] rawMsgs = intent 
      .getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES); 
    final long stopReadTime = System.currentTimeMillis();//I am reading time when read is stopped 
//rest of the code 
...... 
} 

但时间似乎是不可靠的。我读了8K标签,并用简单的秒表,我可以看到它需要3秒钟,但测量时间戳只给我1-3毫秒。 我想测量从Android上发现的声音到完成阅读的时间。 我做错了什么?

回答

2

当您得到您的ACTION_NDEF_DISCOVERED意图时,该标签已被读取。

intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES)的调用或多或少只是一个很简单的getter函数。

应用程序无法测量从标签检测声音到意图调用的时间。