В Android я могу реализовать блокировку телефона с помощью API телефонии, прослушивая состояние телефона, но в нем отображается окно с номером телефона и кнопками отклонения и принятия. Почему-то мне не нужно это окно.
В моем тесте я использовал Device Monitor для вызова симулированного Pixel 2, в первый раз
Я не видел окна, но после этого всегда есть окно с номером телефона и кнопками.
Вот мой код:
@Override
public void onReceive(Context context, Intent intent) {
ITelephony telephonyService;
try {
String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
String number = intent.getExtras().getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
if (state.equalsIgnoreCase(TelephonyManager.EXTRA_STATE_RINGING)) {
TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
try {
Method m = tm.getClass().getDeclaredMethod("getITelephony");
m.setAccessible(true);
telephonyService = (ITelephony) m.invoke(tm);
if ((!isNumberInContactList(number))) {
telephonyService.endCall();
Toast.makeText(context, "Ending the call from: " + number, Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(context, "Accepting the call from: " + number, Toast.LENGTH_SHORT).show();
}
} catch (Exception e) {
e.printStackTrace();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
Интересно, можно ли полностью скрыть окно и просто завершить вызов без трассировки, кроме как в журнале вызовов.