Ожидание включения экрана телефона - PullRequest
0 голосов
/ 28 мая 2018

Что я хочу:

Я разрабатываю одно приложение, в котором я хочу отображать диалог / всплывающее окно при входящем звонке.

Я заметил в журнале, что между началом активности при входящем звонке и включением экрана телефона есть небольшая задержка.Сначала запускается действие, а затем включается экран телефона.

Поэтому я хочу отобразить это диалоговое окно после включения экрана телефона.Короче хочу подождать пока телефон включится.

Что я пробовал:

  • Я использовал Asynctask в BroadcastReceiver

    protected Boolean doInBackground(Void... params) {
    
       PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
        isScreenOn = powerManager.isInteractive();
        return  isScreenOn;
    }    
    

ипоследовал этот ответ.Но это дает мне исключение времени компиляции

необработанное исключение java.util.concurrent.executionexception даже после поиска в Google, я не смог ее решить.Поэтому я использовал другой подход.

  • Я создал еще один * широковещательный приемник для состояния экрана телефона согласно этой ссылке

(* Обратите внимание, я ужеесть приемник широковещательной рассылки входящего вызова)

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

  • Iдаже пытался добавить действие намерения в существующий приемник вещания, но опять же не знаю, как ждать, пока экран телефона не включится.

Какие-либо указатели / предложения?

1 Ответ

0 голосов
/ 28 мая 2018

Поработав над этой проблемой, наконец-то смог ее решить.Публикация ответа, если кто-то еще борется за подобную проблему.

case TelephonyManager.CALL_STATE_RINGING: //Incoming Call Ringing

            new Handler().postDelayed(new Runnable() {
                @Override
                public void run() {
                    //Calling activity to show dialog / popup window.
                }
            }, 1000);

Это было так просто.Уф !!

...