Я обнаружил, что когда я положил Nexus S (под управлением Android 2.3.6) рядом с тегом NFC, в котором содержится сообщение NDEF с URI-записью, указывающей на веб-сайт, это вызовет (как и ожидалось) выбор NFC-активности NFC (поскольку у меня установлено несколько приложений для чтения NFC, и я работаю над своим собственным приложением, которое также перехватывает обнаруженные теги NFC).Обнаружение NFC для Android 2.3.6 и 4.x
Однако, с помощью Galaxy Nexus (Android v4, Ice Cream Sandwich), выбор активности НЕ появляется. Он просто запустит браузер. LogCat покажет это:
D/NfcService(438): TAG: Tech [android.nfc.tech.MifareUltralight, android.nfc.tech.NfcA, android.nfc.tech.Ndef]
I/ActivityManager(196): START {flg=0x10008000 cmp=com.android.nfc3/com.android.nfc.NfcRootActivity (has extras)} from pid 438
I/ActivityManager(196): START {act=android.nfc.action.NDEF_DISCOVERED dat=http://www.someURL.com/someotherstuff cmp=com.google.android.browser/com.android.browser.BrowserActivity (has extras)} from pid 438
Так что это дает мне два вопроса:
а) Android 2.3.6 и 4.x решили вести себя по-другому, becaaaause ...?
б) Даже когда я пытаюсь ограничить мое приложение, чтобы соответствовать только метки NFC, которые содержат множество www.someURL.com, то есть, поставив
<data
android:host="www.someURL.com"
android:pathPattern="/*"
android:scheme="http" />
в моих 3 намеренных фильтров (один для TAG_DISCOVERED, один для TECH_DISCOVERED, один для NDEF_DISCOVERED, я действительно пытаюсь привлечь внимание к выбору NFC-активности там ...), результат не изменится. Он просто откроет браузер. Банкомат - единственное, что работает, - это переподготовка ...
Любые идеи?
Именно эта проблема была. теперь я использую 'android: pathPrefix ="/someotherstuff "'. В префиксе не требуется «*». – NameZero912