我们正在开发NFC标签android应用,它正常运行了50%,其余时间在以下try块中出现了NFC服务死异常的情况:
场景是我们第一次连接到nfc Tag并发送数据,它总是可以正常工作。然后,我们不会将手机移开,在1-2秒后,我们再次尝试连接到nfc标签(如果未连接)以发送数据,并且30%的时间我们收到NFC服务死机异常,并且直到禁用该功能才启动并启用手机的NFC。
Process.setThreadPriority(Process.THREAD_PRIORITY_DISPLAY + Process.THREAD_PRIORITY_MORE_FAVORABLE); //first line of doInBackground() if(((ArrayList<Byte>) params[0]).size()<=0){ return "No image selected!"; } NfcA nfcaTag = (NfcA) params[2]; try{ nfcaTag = NfcA.get(tag); if (!nfcaTag.isConnected()){ nfcaTag.connect(); //this is line 175 MainActivity } try { nfcaTag.close(); }
例外:
NFC service dead android.os.DeadObjectException at android.os.BinderProxy.transactNative(Native Method) at android.os.BinderProxy.transact(Binder.java:622) at android.nfc.INfcTag$Stub$Proxy.connect(INfcTag.java:285) at android.nfc.tech.BasicTagTechnology.connect(BasicTagTechnology.java:73) at android.nfc.tech.NfcA.connect(NfcA.java) at de.silab.nfc.vistagnfcappv1.MainActivity$2.onClick(MainActivity.java:175) at android.view.View.performClick(View.java:5723) at android.view.View$PerformClick.run(View.java:22689) at android.os.Handler.handleCallback(Handler.java:836) at android.os.Handler.dispatchMessage(Handler.java:103) at android.os.Looper.loop(Looper.java:203) at android.app.ActivityThread.main(ActivityThread.java:6361) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1063) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:924)
有什么办法可以解决这个问题。我们长期以来一直被困在这里。以及通过捕获此异常来重启NFCAdapter / nfc服务的任何方法?