Запуск NFC, когда экран заблокирован на Android
Я хочу запустить Мое приложение, когда мы нажимаем на тег NFC, даже Телефон заблокирован, как и в приложении Google Кошелек.
Я пробовал следующие способы:
1) Нажмите тег NFC, чтобы запустить мое приложение после нажатия кнопки питания - Ошибка:
05-23 22:00:22.949: D/NfcService(32443): EnableDisableDiscoveryTask: enable = false
05-23 22:00:22.964: D/NfcService(32443): NFC-C polling OFF
05-23 22:00:22.996: D/PhoneStatusBar(273): disable: < EXPAND icons alerts TICKER
system_info BACK* HOME* RECENT CLOCK* >
05-23 22:00:23.988: D/NfcService(32443): NFC-EE routing OFF
[10:33:22 AM IST]
2) Нажмите NFC-тег после нажатия кнопки питания, и теперь я могу видеть экран блокировки/разблокировки - Ошибка:
05-23 22:03:59.714: D/NfcService(32443): EnableDisableDiscoveryTask: enable = true
05-23 22:03:59.730: D/NfcService(32443): NFC-EE routing OFF
05-23 22:04:03.238: D/NfcService(32443): NFC-C polling ON
Если я разблокирую экран и Taps на теге NFC, все работает отлично
Как работать с кнопкой питания и заблокировать/разблокировать экран, чтобы запустить приложение, когда телефон заблокирован?
Ответы
Ответ 1
Это не поддерживается. Я не думаю, что даже Google Wallet работает так, вы уверены в этом? На самом деле это функция безопасности - вы не хотите, чтобы кто-то украл ваш телефон, чтобы иметь возможность делать платежи с ним, не имея возможности разблокировать его.
Ответ 2
Согласно Google, устройства с Android-устройствами должны быть разблокированы для сканирования тега NFC [1].
Также Google Кошелек относится к конфиденциальности и безопасности и работает только в разблокированном состоянии [2].
[1] http://developer.android.com/guide/topics/connectivity/nfc/nfc.html
[2] http://www.google.com/wallet/faq.html
Ответ 3
Я искал реализацию одной и той же функции в одном из моих приложений. После некоторого поиска я обнаружил эти ссылки:
http://www.xda-developers.com/android/use-nfc-with-screen-off-or-in-lock-screen-on-galaxy-nexus/
Также обратите внимание, что новый Moto X был функцией "Skip", которая допускает такое же поведение. Вы можете увидеть демонстрацию этого видео:
https://www.youtube.com/watch?v=-JUgspIGxcE
Надеюсь, что это поможет
Ответ 4
Согласен с Николаем Еленковым. Поскольку вы не можете удержать кнопку Power, обсудите здесь так же вы не можете разблокировать телефон, чтобы запустить приложение во время запуска вашего приложения.
Ответ 5
Возможно, он может работать, если вы используете:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#FLAG_SHOW_WHEN_LOCKED