Запись AAR в NFC: где полезная нагрузка?

Согласно этому ответу, и проверено тестированием, когда вы используете Android Beam для передачи сообщения NFC, содержащего запись AAR, принимающее устройство запускает MAIN/LAUNCHER активность для приложения, указанного в AAR.

Тот MAIN/LAUNCHERIntent не содержит NfcAdapter.EXTRA_NDEF_MESSAGES дополнительно. Следовательно, если вы используете AAR, данные, через которые мы прошли через все трудности, будут потеряны.

Есть ли какой-нибудь способ получить сообщения NFC, которые вызвали запуск приложения в этом сценарии?

И если ответ "нет", то каков вариант использования AAR? Я могу видеть, где это может быть полезно, когда нужное приложение не существует на принимающем устройстве (вызывает Play Store), но затем, когда приложение установлено, AAR препятствует любой попытке доставить данные с одного устройства на другое, что своего рода точка позади NFC.

Спасибо!

2 ответа

Решение

С риском ответить на мой собственный вопрос, один рецепт, чтобы заставить это работать (очевидно):

  • Пусть отправитель луча использует сообщение NFC с двумя записями NFC, первая из которых содержит что-то для уникального типа MIME, а вторая - AAR

  • У получателя луча есть <intent-filter> на активность, которая отвечает на первую запись NFC, например, через:

        <intent-filter>
            <action android:name="android.nfc.action.NDEF_DISCOVERED"/>
    
            <category android:name="android.intent.category.DEFAULT"/>
    
            <data android:mimeType="application/vnd.commonsware.webbeam"/>
        </intent-filter>
    

Если приложение уже существует, NDEF_DISCOVEREDIntent будет использован, и получатель может забрать сообщение NFC и извлечь данные из начальной записи. Если приложение не существует, AAR запускается, вызывая Play Store (независимо от того, распространяется ваше приложение через Play Store или нет).

Это рецепт, показанный в примере Android Beam на сайте разработчика.

Из документации видно, что вариант использования гарантирует, что ваше приложение запускается из события NFC. Второй вариант использования позволил бы телефону узнать, какое приложение ему нужно для чтения тега.

Пара вопросов Если вы используете две записи: первая нормальная, вторая AAR, как начинается действие? Я ожидаю, что вы начнете через намерение отправки тегов. Содержит ли намерение AAR что-либо, что дает вам тег? Я думаю, что вы могли бы Мануа

Другие вопросы по тегам