Жду, пока не загорится экран телефона

Что я хочу:

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

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

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

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

  • Я использовал 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 я не смог решить эту проблему. Поэтому я использовал другой подход.

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

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

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

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

Любые указатели / предложения?

2
0
61
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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);

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

Другие вопросы по теме