标记标记 = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_TAG);
Tag tag = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_TAG);
在我的应用程序中添加 NFC 功能后,我遇到了一个奇怪的错误。我遵循了许多指南和教程,他们有这条线,
Tag tag = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_TAG);
这不起作用,因为 Tag 需要一个 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;
}
}
}
}
您应该使用 Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
而不是 Tag tag = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_TAG);
第一个 returns 一个 Tag 对象,第二个 returns 一个数组。
在我的应用程序中添加 NFC 功能后,我遇到了一个奇怪的错误。我遵循了许多指南和教程,他们有这条线,
Tag tag = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_TAG);
这不起作用,因为 Tag 需要一个 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;
}
}
}
}
您应该使用 Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
而不是 Tag tag = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_TAG);
第一个 returns 一个 Tag 对象,第二个 returns 一个数组。