我已经制作了一个发送 Intent android.nfc.action.TAG_DISCOVERED的应用程序,但是随后我想通过onNewIntent方法获取卡的信息,但是我不知道如何处理这种情况。 NFC卡。我尝试使用以下代码:

    public void onNewIntent(Intent intent) {
        Tag tagFromIntent = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
        //do something with tagFromIntent
        NfcA nfca = NfcA.get(tagFromIntent);
        try{
            nfca.connect();
            Short s = nfca.getSak();
            byte[] a = nfca.getAtqa();
            String atqa = new String(a, Charset.forName("US-ASCII"));
            tv.setText("SAK = "+s+"\nATQA = "+atqa);
            nfca.close();
        }
        catch(Exception e){
            Log.e(TAG, "Error when reading tag");
            tv.setText("Error");
        }
    }

电视是一个TextView,但是执行此代码后,它永远都不会改变。

最佳答案

如果您的 Activity 已在运行,并且设置为singleTask,则调用OnNewIntent。
您将需要使代码成为自己的方法,并在onCreate()和onNewIntent()中对其进行调用

10-08 18:38