Как заблокировать звонок в андроиде без отображения звонка? - PullRequest
0 голосов
/ 08 июня 2019

В 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();
        }
    }

Интересно, можно ли полностью скрыть окно и просто завершить вызов без трассировки, кроме как в журнале вызовов.

...