Эй там StackOverflowers ...NDEF Фильтр намерений не запускается приложение в Android 6 и 7
Я поддерживаю приложения, которые имеют NFC чтения функциональные возможности и требует, чтобы открыть приложение путем сканирования метки NFC. Он отлично работает на 4.3 и все версии 4.X android.nfc.action.NDEF_DISCOVERED
intent-filter
.
Так что URL выглядит так: http://www.example.com/nfc/NFC00000001
И я прочитал почти все возможные связанный ответ о NFC умысел фильтра.
Я могу получить тег NFC через код, если активность открыта, но это не то, что мне нужно.
читатель приложений NFC показывают, что мой тег
NXP MIFARE Ultralight (Ultralight C) - NTAG213
И что он поддерживает
NFCA, MifareUltralight, ЦНК
Не работает над Android 6 (Nexus 4), Android 6 (OnePlus 3) и Andorid 7.1.1 (Nexus 6P). У меня нет других устройств Android 6 и 7, поэтому я не могу проверить на Android 5.
Я попытался с и без android.nfc.action.TECH_DISCOVERED
Я попробовал почти все возможные опции и это мой последний подход, который не работает слишком (приложение не запущена).
<activity
android:name=".activities.QRActivity"
android:launchMode="singleInstance"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="www.example.com"
android:pathPattern="/nfc/..*"
android:scheme="http" />
</intent-filter>
<intent-filter>
<action android:name="android.nfc.action.TECH_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="www.example.com"
android:pathPattern="/nfc/..*"
android:scheme="http" />
</intent-filter>
<meta-data
android:name="android.nfc.action.TECH_DISCOVERED"
android:resource="@xml/nfc_tech_filter" />
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="www.example.com"
android:pathPattern="/nfc/..*"
android:scheme="http" />
</intent-filter>
Мой технологии файл выглядит так:
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<tech-list>
<tech>android.nfc.tech.NfcA</tech>
</tech-list>
<tech-list>
<tech>android.nfc.tech.NfcB</tech>
</tech-list>
<tech-list>
<tech>android.nfc.tech.NfcF</tech>
</tech-list>
<tech-list>
<tech>android.nfc.tech.NfcV</tech>
</tech-list>
<tech-list>
<tech>android.nfc.tech.IsoDep</tech>
</tech-list>
<tech-list>
<tech>android.nfc.tech.MifareClassic</tech>
</tech-list>
<tech-list>
<tech>android.nfc.tech.MifareUltralight</tech>
</tech-list>
<tech-list>
<tech>android.nfc.tech.NdefFormatable</tech>
</tech-list>
<tech-list>
<tech>android.nfc.tech.Ndef</tech>
</tech-list>
<tech-list>
<tech>android.nfc.tech.NfcBarcode</tech>
</tech-list>
<tech-list>
<tech>android.nfc.tech.Ndef</tech>
<tech>android.nfc.tech.NfcA</tech>
<tech>android.nfc.tech.MifareUltralight</tech>
</tech-list>
</resources>
Я также попытался:
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="www.example.com"
android:pathPattern="\\/nfc/..*"
android:scheme="http" />
</intent-filter>
И:
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="www.example.com"
android:pathPattern="/nfc/.*"
android:scheme="http" />
</intent-filter>
И даже:
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="www.example.com"
android:scheme="http" />
</intent-filter>
И:
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="www.example.com"
android:pathPrefix="/nfc"
android:scheme="http" />
</intent-filter>
Если кто-то есть несколько советов, как сделать его работу или дать объяснение, почему это не возможно, будет понятно :)
Вы проверили, что запись с URL правильно написано в теге? Такие вещи, как набор символов ... – corvairjo
Да, когда моя активность открыта, она читает: http://www.example.com/nfc/NFC00000001, но приложение не запускается в одиночку, если мое приложение не открывается. PS http-протокол не отображается в stackoverflow lol –
Я понял эту часть. Я бы проверил (например, приложение NFC Taginfo), какие данные на самом деле находятся в теге. – corvairjo