Можно ли создать кросс-платформенное сообщение NDEF для запуска приложения на Android и Windows Phone с передачей дополнительных данных в приложение?
Что я пытаюсь сделать:
У меня установлено приложение на Android и Windows Phone. Должна быть возможность запускать приложения с тегом NFC, и мне нужно передать дополнительные данные из тега (любая строка) в мои приложения.
Чтобы запускать приложения с тегами NFC, я создал запись приложения LaunchApp для Windows Phone и запись приложения Android (AAR) и сохранил их в теге.
Windows Phone требует, чтобы запись LaunchApp была первой записью NDEF в сообщении NDEF. Таким образом, последовательность сообщения NDEF такова:
- Запись приложения для запуска Windows Phone
- Запись приложения Android
Чтобы передать дополнительные данные, я могу поместить некоторые аргументы в запись Windows Phone LaunchApp, так что это работает нормально. Но невозможно добавить некоторые дополнительные данные в запись приложения Android.
Я попытался добавить третью запись NDEF в сообщение, содержащее дополнительные данные для Android. Я создал внешнюю запись и добавил фильтр в свой манифест.
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="vnd.android.nfc"
android:host="ext"
android:pathPrefix="/myapp.com:customtype"/>
</intent-filter>
Проблема заключается в последовательности сообщения NDEF:
Запись Windows Phone должна быть первой записью в сообщении, но дополнительная запись также должна быть первой записью, которая получит намерение на Android.
Сообщение NDEF:
- Внешняя запись и запись LaunchApp
- Запись приложения Android
Если у меня есть следующая последовательность записей, я получаю дополнительные данные на Android, и приложение запускается, но затем я не могу открыть приложение на Windows Phone, потому что запись является второй.
- Внешняя запись
- Приложение для запуска Windows Phone
- Запись приложения Android
Есть ли решение этой проблемы? Я что-то пропустил?