2015-06-26 1 views
2

Я создаю пользовательский экран блокировки Android с пользовательским PIN-кодом. Я хотел бы разрешить пользователям отвечать на входящие звонки без ввода PIN-кода и без ущерба для безопасности телефона.Экран блокировки Android: разрешите пользователю отвечать на телефонный звонок, не требуя PIN-кода

Оба этих экрана блокировки и GoLocker имеют эту функцию.

Два плохих альтернативы: (1) заставить пользователя ввести PIN-код или (2) полностью разблокировать телефон, когда пользователь получает телефонный звонок

Любые предложения, пожалуйста?

Спасибо!

ответ

0

Просто слушайте TelephonyManager заявляет с приемником вещания и решает, что делать. Зарегистрируйте приемник для:

<intent-filter> 
    <action android:name="android.intent.action.PHONE_STATE"/> 
</intent-filter> 

... и всякий раз, когда OnReceive пинки в проверке, если ...

intent.getStringExtra(TelephonyManager.EXTRA_STATE) == TelephonyManager.EXTRA_STATE_RINGING 

Это означает, что вы получаете вызов, так что вы можете скрыть свой «блокировки экрана» , но это будет серьезным недостатком безопасности - у кого есть номер человека и телефон с разблокировкой SIM-карты (например, тот, кто просто украл его и узнает ваш номер ...) просто убьет вашу функцию «настраиваемого PIN-кода», вызов.

Если вы хотите, чтобы ответить на вызов непосредственно вашим приложением, вы находитесь в очень разных, еще более проблематичными воды, чем только что - Android не позволяет непривилегированных приложений (не корневые) отвечать на звонки, и все методы, которые я знаю, являются либо хаками типа отражения, типа эмуляции «bluetooth headset press», либо типом вызова более неработающей оболочки оболочки ... Нет ничего, что последовательно работает на разных устройствах, вам нужно смешивать и сопоставлять , а некоторые устройства потребуют условных условий, потому что попытка одного из них может привести к сбою этого конкретного рома. Вот почему на рынке больше нет настоящих приложений «на экране вызова», а только дозвонщиков, которые запускают экран системы на экране перед вызовом или накладываются поверх экрана системы при получении вызова (что в значительной степени делает то, что я описанных в начале этого ответа).

Смежные вопросы