【问题标题】:Tag tag = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_TAG);标签 tag = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_TAG);
【发布时间】:2016-04-22 14:50:02
【问题描述】:

在我的应用中添加 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;
            }
        }
    }
}

【问题讨论】:

    标签: android android-intent nfc parcelable


    【解决方案1】:

    您应该使用Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); 而不是Tag tag = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_TAG);

    第一个返回一个 Tag 对象,第二个返回一个数组。

    【讨论】:

    • 老兄,非常感谢。我一定每次都忽略了这一点。
    • 这就是我们在这里的目的。不要忘记做出答案,以便帮助他人
    猜你喜欢
    • 1970-01-01
    • 2018-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-20
    • 2012-09-12
    • 1970-01-01
    相关资源
    最近更新 更多