我正在使用IsoDep Tag Tech处理应用程序,以向支持NFC的卡发出APDU命令.
更新:所以下面看到的问题似乎与我正在使用的卡的电源要求有关,当我使用具有较低功率要求的不同卡时,下面的症状不会经常发生.
我明确地遵循了文档,并成功地实现了协议.然而,由于混合成功,我遇到了一些超出我的代码控制范围的NFC低级库的问题.
我已经实现了以下内容:
>前景调度待定
意图.
>意图有一个技术过滤器
对于IsoDep.class和动作:
> ACTION_TAG_DISCOVERED
>一旦我
从Intent Extra中提取标签
发出APDU命令并处理
回复
问题是我注意到了几件事:
在Nexus S上,卡的位置取决于成功的通信流程,如果它不在最佳位置,我将收到IOException
如果由于卡已移动或未保留在RF字段中而导致IOExceptions过多,我开始看到以下消息(见下文)
我想知道是否有其他人见过这些问题?在我的onResume方法中,我没有任何逻辑来阻止多次调用方法的NFCAdapter实例:enableForegroundDispatch,我应该这样做.
在此先感谢您的帮助.
示例例外1
06-16 12:08:43.351: ERROR/NFC(661): NFC service dead - attempting to recover
06-16 12:08:43.351: ERROR/NFC(661): android.os.DeadObjectException
06-16 12:08:43.351: ERROR/NFC(661): at android.os.BinderProxy.transact(Native Method)
06-16 12:08:43.351: ERROR/NFC(661): at android.nfc.INfcAdapter$Stub$Proxy.enableForegroundDispatch(INfcAdapter.java:528)
06-16 12:08:43.351: ERROR/NFC(661): at android.nfc.NfcAdapter.enableForegroundDispatch(NfcAdapter.java:494)
06-16 12:08:43.351: ERROR/NFC(661): at myClass.onResume(MyClass.java:406)
06-16 12:08:43.351: ERROR/NFC(661): at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1150)
06-16 12:08:43.351: ERROR/NFC(661): at android.app.Activity.performResume(Activity.java:3832)
06-16 12:08:43.351: ERROR/NFC(661): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2110)
06-16 12:08:43.351: ERROR/NFC(661): at android.app.ActivityThread.handleResumeActi