如何将收到的意图传递给其他应用/活动?

时间:2016-09-06 11:44:37

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

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

我知道我可以使用

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

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

感谢您的时间!

1 个答案:

答案 0 :(得分:0)

您可以通过这种方式将数据传输到其他活动,例如在你的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);