如何将收到的意图传递给另一个应用程序/活动?

Posted

技术标签:

【中文标题】如何将收到的意图传递给另一个应用程序/活动?【英文标题】: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))。这可能是因为我在不同的方法中处理接收和传递,即使我将意图从一种方法传递到另一种方法。

感谢您的宝贵时间!

【问题讨论】:

【参考方案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);

【讨论】:

以上是关于如何将收到的意图传递给另一个应用程序/活动?的主要内容,如果未能解决你的问题,请参考以下文章

将捆绑包/意图传递给另一个活动?

使用意图将变量传递给另一个android活动

无法将 json 传递给另一个活动的意图

如何将数组传递给另一个活动?

由意图传递或 android 中的活动更改引起的崩溃

如何将单击的列表项值传递给另一个活动?