Глубокая ссылка в приложение (конкретная деятельность) по тегу NFC
Я разрабатываю приложение для Android, которому нужна глубокая ссылка с тегом NFC.
Здесь вы можете увидеть мой фильтр намерений для активности:
<activity
android:name=".ui.schedule.ScheduleActivity"
android:parentActivityName=".ui.home.HomeActivity">
<intent-filter android:label="testDeepLink">
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE"/>
<data
android:scheme="http"
android:host="www.testdeeplink.com"
android:pathPrefix="/schedule"/>
</intent-filter>
</activity>
Теперь, когда я запускаю эту команду в adb, приложение запускается с правильной активностью (ScheduleActivity):
adb shell am start -W -a android.intent.action.VIEW -d "http://www.testdeeplink.com/schedule?stop_id=1" com.exmemple.android
Но когда я кодирую URL в теге NFC, сканирование этого тега просто запускает веб-браузер моего телефона. Чего мне не хватает, чтобы начать работу с тегом NFC?
URL, закодированный в теге: " http://www.testdeeplink.com/schedule?stop_id=1"
1 ответ
Вам не хватает встроить фильтр намерений NFC в манифест. URL-адреса на тегах NFC не будут вызывать намеренное действие ПРОСМОТР. Вместо этого они будут отправлены в действия с целевым действием NDEF_DISCOVERED. Следовательно, вы можете получить такое намерение NFC, добавив дополнительный фильтр намерений для действия NDEF_DISCOVERED в свой манифест:
<activity
android:name=".ui.schedule.ScheduleActivity"
android:parentActivityName=".ui.home.HomeActivity">
<intent-filter android:label="testDeepLink">
<action android:name="android.intent.action.VIEW" />
...
</intent-filter>
<intent-filter android:label="testDeepLinkNFC">
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="http"
android:host="www.testdeeplink.com"
android:pathPrefix="/schedule" />
</intent-filter>
Обратите внимание, что, похоже, существуют некоторые (неподтвержденные?) Проблемы с некоторыми устройствами под управлением Android 6.0+, когда браузер, похоже, захватывает URL-адреса из тегов NFC, несмотря на правильные фильтры намерений NDEF. Я сам не испытывал этого до сих пор, поэтому я не мог продолжать исследовать это, хотя.