Прочитайте все технологии NFC, используя режим чтенияAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Прочитайте все технологии NFC, используя режим чтения

Сообщение Anonymous »

Я хочу помешать Android начать новое действие при обнаружении пустой тег NFC. При использовании API режима считывателя я не могу обнаружить пустые теги NFC или другие технологии, кроме NDEF. Если я использую nfcadapter.flag_reader_skip_ndef_check , я должен проанализировать ndef самостоятельно - ndef ничего не обнаруживает. Без этого флага это так. Я хочу должным образом поддерживать все технологии, которые, кажется, возможны только с API режима считывателя (API переполнения стека - API режима считывателя). Существует ли общее решение для обнаружения всех типов технологий тегов с помощью API режима считывателя в течение определенного периода времени? < /P>

Код: Выделить всё

class NfcObserver(context: Context) {
private val activity = WeakReference(context as? Activity)
private val nfcAdapter: NfcAdapter? by lazy { NfcAdapter.getDefaultAdapter(context) }

private fun isNfcSupported(): Boolean = nfcAdapter != null
private fun isNfcEnabled(): Boolean = nfcAdapter?.isEnabled == true

val nfcTagContentFlow: Flow = callbackFlow {
when {
!isNfcSupported() -> {
close(UnsupportedOperationException("NFC is not supported on this device"))
return@callbackFlow
}

!isNfcEnabled() -> {
close(IllegalStateException("NFC is not enabled"))
return@callbackFlow
}
}

val readerCallback = NfcAdapter.ReaderCallback { tag ->
launch {
handleNdefTag(tag)
}
}

val flags = NfcAdapter.FLAG_READER_NFC_A
nfcAdapter?.enableReaderMode(activity.get(), readerCallback, flags, null)

awaitClose {
nfcAdapter?.disableReaderMode(activity.get())
}
}
}

Подробнее здесь: https://stackoverflow.com/questions/794 ... eader-mode
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»