Сканировать NFC только из определенного действия

В настоящее время я разрабатываю приложение, которое используется для сканирования удостоверений личности. По сути, у меня все работает, за исключением одного: всякий раз, когда тег приближается к телефону, какое бы другое приложение ни было запущено в данный момент, вызывается моя активность. Однако я хочу, чтобы тег читался только тогда, когда в фокусе находится действие, предлагающее пользователю отсканировать его удостоверение личности.

Я уже пытался добиться такого поведения, установив логическое значение true после запуска действия пользователем вместо отсканированного тега NFC и установив логическое значение false onPause/onStop, но тем не менее они вызываются после сканирования тега делая мои попытки бесполезными.

(Поведение, подобное тому, которого я пытаюсь достичь, можно наблюдать в приложении Инструменты NFC, где пользователю предлагается переключить фокус на нужное действие, чтобы отсканировать метку. Если метка находится рядом с телефоном вне приложения, никаких действий не предпринимается. .)

Я рад видеть ваши взгляды на эту тему.


person Askr    schedule 17.07.2014    source источник
comment
возможный дубликат Чтение тега из определенного действия   -  person Michael Roland    schedule 17.07.2014


Ответы (1)


Не регистрируйте фильтр намерений в AndroidManifest.xml, а используйте методы enableForegroundDispatch и disableForegroundDispatch. Более подробную информацию вы можете найти здесь: http://developer.android.com/guide/topics/connectivity/nfc/advanced-nfc.html#foreground-dispatch

person Kamen Goranchev    schedule 17.07.2014
comment
Спасибо, это сработало как шарм! Я даже не думал, что это будет работать без фильтра намерений. - person Askr; 17.07.2014