【问题标题】:How do I pass a recieved intent to another app/activity?如何将收到的意图传递给另一个应用程序/活动?
【发布时间】:2017-01-13 20:48:39
【问题描述】:

我正在开发一个读取 NFC 标签的应用程序。如果标签是纯文本,它会显示在 TextView 中。如果它是 vCard,我想将意图直接传递给联系人,在那里可以像前台没有应用程序一样处理它。

我知道我可以使用插入用户

Intent intent = new Intent(ContactsContract.Intents.Insert.ACTION);
intent.setType(ContactsContract.RawContacts.CONTENT_TYPE);
startActivity(intent);

但这只会打开联系人应用程序而不会实际传递数据。使用我的应用收到的意图,引发 NullPointerException (startActivity(recievedIntent))。这可能是因为我在不同的方法中处理接收和传递,即使我将意图从一种方法传递到另一种方法。

感谢您的宝贵时间!

【问题讨论】:

    标签: android android-intent nfc android-contacts vcf-vcard


    【解决方案1】:

    您可以通过这种方式将数据传输到另一个活动,例如在你的 onNewIntent(Intent intent) 方法中:

    Parcelable[] rawMsgs = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
            Intent myintent = new Intent(this, yourIntentActivity.class);
            myintent.setAction(NfcAdapter.ACTION_NDEF_DISCOVERED);
            myintent.putExtra(NfcAdapter.EXTRA_NDEF_MESSAGES, rawMsgs);
            myintent.putExtra(NfcAdapter.EXTRA_TAG, intent.getParcelableExtra(NfcAdapter.EXTRA_TAG));
            startActivity(myintent);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-16
      • 2017-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多