我正在开发一款能够读取NFC标签的应用。如果标记是纯文本,则它将显示在TextView中。如果它是一个vCard,我想将意图直接传递给联系人,在那里它可以像在前台没有应用程序时那样处理。
我知道我可以使用
插入用户Intent intent = new Intent(ContactsContract.Intents.Insert.ACTION);
intent.setType(ContactsContract.RawContacts.CONTENT_TYPE);
startActivity(intent);
但这只会在没有实际传递数据的情况下打开联系人应用。使用我的应用程序收到的意图,抛出NullPointerException(startActivity(recievedIntent)
)。这可能是因为我处理了接收和传递不同的方法,即使我将意图从一种方法传递给另一种方法。
感谢您的时间!
答案 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);