如何将收到的意图传递给另一个应用程序/活动?
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);
【讨论】:
以上是关于如何将收到的意图传递给另一个应用程序/活动?的主要内容,如果未能解决你的问题,请参考以下文章