Как передать полученное намерение другому приложению / деятельности?

Я разрабатываю приложение, которое читает теги NFC. Если тег представляет собой простой текст, он отображается в TextView. Если это vCard, я хочу передать намерение контактам, где оно может быть обработано так же, как если бы на переднем плане не было приложения.

Я знаю, что могу вставить пользователя, используя

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

но это только откроет приложение контактов без фактической передачи данных. Используя намерение, полученное моим приложением, выдает исключение NullPointerException (startActivity(recievedIntent)). Вероятно, это связано с тем, что я обрабатываю получение и передачу в другом методе, хотя я передаю намерение от одного метода к другому.

Спасибо за ваше время!

1 ответ

Этим способом вы можете перенести данные в другое действие, например, в свой метод onNewIntent(намерение):

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);
Другие вопросы по тегам