Я потратил последние дни копался в Интернете и в итоге получил следующую реализацию:
AndroidManifest.xml
Код: Выделить всё
...
...
android:launchMode="singleTop">
...
Код: Выделить всё
android.nfc.tech.NfcA
android.nfc.tech.NfcB
android.nfc.tech.NfcF
android.nfc.tech.IsoDep
android.nfc.tech.NfcV
android.nfc.tech.Ndef
android.nfc.tech.NdefFormatable
android.nfc.tech.MifareClassic
android.nfc.tech.MifareUltralight
Код: Выделить всё
...
import android.nfc.NfcAdapter
import android.nfc.Tag
import android.nfc.tech.MifareClassic
import android.nfc.tech.NfcA
class MainActivity : AppCompatActivity() {
private lateinit var nfcAdapter: NfcAdapter
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Initialize NFC Adapter
nfcAdapter = NfcAdapter.getDefaultAdapter(this)
...
}
...
override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
// Retrieve the NFC tag from the intent
val tagFromIntent: Tag? = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG)
if (tagFromIntent != null) {
Log.e("NFC_TAG", "NFC tag found in the intent")
} else {
Log.e("NFC_TAG", "No NFC tag found in the intent")
}
}
Когда я тестирую приложение на этом телефоне и представляю Mifare Classic 1K RFID-карта Я всегда получаю сообщение «Тег NFC не найден».
Однако, когда я использую такие приложения, как TagInfo или MIFARE Classic, отображается UID карт для тестирования. NFC Tools даже показывает NfcA и MifareClassic как доступные технологии.
Чего мне не хватает в моей реализации?
Обновление 16.09.:
Я нашел в Интернете ресурс (NFCReader — mueller-ma github), который представляет собой реализацию приложения Kotlin, которое предоставляет пользователю информацию о RFID-метках. Он делает больше, чем мне нужно, но послужил хорошей основой. Я до сих пор не знаю точных проблем с моим подходом, но эта версия не распознает теги как Mifare Classic. Поскольку он все еще может определять UID по моим «неизвестным» тегам, у меня есть все, что мне нужно для моего небольшого проекта, и я смог заставить эту функцию работать.
Подробнее здесь: https://stackoverflow.com/questions/789 ... via-kotlin