2013-11-09 44 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函數。

應用程序無法測量從標籤檢測聲音到意圖調用的時間。