在将NFC功能添加到我的应用程序之后,我遇到了一个奇怪的错误。我听过很多指南和教程,他们有这一行,
Tag tag = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_TAG);这不能工作,因为标记需要一个标记,但它正在接收一个Parcelable对象。我不知道我是不是错过了什么,或者为什么其他人似乎在工作,而不是我的。
全法
private void handleIntent(Intent intent)
{
String action = intent.getAction();
if(NfcAdapter.ACTION_NDEF_DISCOVERED.equals(action))
{
String type = intent.getType();
if (mime_Text_plain.equals(type))
{
Tag tag = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_TAG);
new NdefReader().execute(tag);
}
else
{
Log.d(TAG, "Wrong MIME Type!");
}
}else if (NfcAdapter.ACTION_TECH_DISCOVERED.equals(action))
{
Tag tag = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_TAG);
String[] nfclist = tag.getTechList();
String searchedNFC = Ndef.class.getName();
for (String nfc: nfclist)
{
if (searchedNFC.equals(nfc))
{
new NdefReader().execute(tag);
break;
}
}
}
}发布于 2016-04-22 14:54:32
您应该使用Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);而不是Tag tag = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_TAG);
第一个返回标记对象,第二个返回数组。
https://stackoverflow.com/questions/36796983
复制相似问题