我已经制作了一个发送 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()中对其进行调用