Просто слушайте 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», либо типом вызова более неработающей оболочки оболочки ... Нет ничего, что последовательно работает на разных устройствах, вам нужно смешивать и сопоставлять , а некоторые устройства потребуют условных условий, потому что попытка одного из них может привести к сбою этого конкретного рома. Вот почему на рынке больше нет настоящих приложений «на экране вызова», а только дозвонщиков, которые запускают экран системы на экране перед вызовом или накладываются поверх экрана системы при получении вызова (что в значительной степени делает то, что я описанных в начале этого ответа).