Просто послушайте состояния 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