я правильно настроить NFC среды:Как правильно прочитать НФК тег
технический фильтр
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <tech-list> <tech>android.nfc.tech.NfcA</tech> <tech>android.nfc.tech.NdefFormatable</tech> </tech-list> </resources>
в проявленном
<uses-permission android:name="android.permission.NFC" /> <uses-feature android:name="android.hardware.nfc" /> <activity android:name=".ui.ScanActivity"> <intent-filter> <action android:name="android.nfc.action.TECH_DISCOVERED" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> <meta-data android:name="android.nfc.action.TECH_DISCOVERED" android:resource="@xml/nfc_tech_filter" /> </activity>
кода (активность, некоторое время после его создания путем чтения тега nfc)
Intent intent = getIntent(); if (intent != null) { String action = intent.getAction(); if (NfcAdapter.ACTION_TECH_DISCOVERED.equals(action)) { Parcelable[] rawMsgs = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
Вот так, rawMsgs всегда пустой, хотя у меня есть приложение на моем телефоне, который читает тот же тег отлично, показывая данные в теге. Где я ошибаюсь?
Есть ли в вашем теге сообщение NDEF? Если 'EXTRA_NDEF_MESSAGES' имеет значение NULL, это обычно означает, что в теге нет сообщения NDEF. –
И ваш технический фильтр содержит android.nfc.tech.Ndef или пуст? – ThomasRS
Отредактированный вопрос. Оказалось, что мой тег не содержит NDEF, но у меня также есть еще один тег, который я не могу разобрать, и который определенно содержит сообщения, потому что другое приложение читает его и показывает некоторые данные из него. – Eugene