Экран блокировки Android: позволяет пользователю отвечать на телефонные звонки без запроса PIN-кода.

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

И Next Lock Screen, и GoLocker имеют эту функцию.

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

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

Спасибо!


person alexyes    schedule 26.06.2015    source источник


Ответы (1)


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

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

... и всякий раз, когда onReceive срабатывает, проверяется, если...

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

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

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

person leRobot    schedule 04.05.2016