Я немного растерялся при использовании NFC с Android.
Я хочу сделать следующее: - Использовать один тег NFC в качестве токена - Прочитать его в Android и показать некоторые функциональные возможности - Если телефон удален изtoken dipaly message - если телефон переподключается или подключается к другому токену, показывает другую функциюallity
Я использовал фильтр намерений в файле AndroidManifest для android.nfc.action.NDEF_DISCOVERED
и xml для фильтрации android.nfc.action.TECH_DISCOVERED
.
Основное действие открывается успешно, и если к нему прикрепляется другой тег
@Override
protected void onNewIntent(Intent intent) { ...}
.
Я также использую таймер, чтобы проверить, подключен ли тег (в основном ndefTag.connect()
; NdefMessage ndefMsg= ndefTag.getNdefMessage();
и затем выглядит более влажным, что-либо получено.
Я установил режим запуска Activity на android:launchMode="singleInstance
, так как в противном случае приложение полностью перезапускалось каждый раз, когда на телефон помещался новый тег.
Теперь я полностью потерян с системой намерений, так как обычно main запускал другие действия, а с намерением - возвращался к основному с потерями текущего переменного тока. Активность и текущая информация на экране.
Итак, мой вопрос состоит из двух частей: - действительно ли это так сложно, что намерения нужно использовать? Не могу ли я как-нибудь подключиться к NFC-ридеру телефона и просто опрашивать устройство каждые несколько секунд? Спросите, связан ли тэг и какие данные на тэге. С комбинацией NDEF_DISCOVERED / TECH_Discovered я видел, что иногда она просто зависает. (также, если это не SingleInstance-Activity - новое действие иногда не запускается). (предпочтительно) - или есть какой-то чистый способ перенаправить NFC-Intents на реальную активность приложения? Или сказать во время выполнения, что main должен вызываться не как фоновая задача, которая обрабатывает соединения?