0

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

@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 上发现声音到完成阅读的时间。我做错了什么?

4

1 回答 1

2

当你得到你的ACTION_NDEF_DISCOVERED意图时,标签已经被读取了。

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

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

于 2013-11-09T23:28:14.410 回答