0

Я разрабатываю приложение для Android, где хочу, чтобы начальный экран мигал при входящем звонке. Я попытался вызвать ниже метод startblinking() в рамках действия, и экран мигает нормально.Мигает при входящем вызове android

Но, Когда я пытаюсь вызвать тот же метод в состоянии звонка phonelistener (внутри класса Service), я получаю следующую ошибку, так как класс службы не имеет окна.

The method getWindow() is undefined for the type PhoneListener 

.

private void startblinking() 
{ 
    Log.e("inside","blink MEthod"); 

    timerforblinking.scheduleAtFixedRate(new TimerTask() 
    { 

     @Override 
     public void run() 
     { 
      runOnUiThread(new Runnable() 
      { 

       public void run() 
       { 

        time = (float) (time + 0.5); 

        if(time == 0.5 || time == 1.5 || time == 2.5 || time == 3.5 || time == 4.5 || time == 5.5) 
        { 
         Log.e("time","OFF - time = "+time); 

         layoutParams.screenBrightness = (float) 30/255; 
         getWindow().setAttributes(layoutParams); 
        } 

        if(time == 1.0 || time == 2.0 ||time == 3.0 ||time == 4.0 ||time == 5.0) 
        { 
         Log.e("time","ON - time = "+time); 

         layoutParams.screenBrightness = (float)255/255; 
         getWindow().setAttributes(layoutParams); 
        } 

        if(time >= 6.0) 
        { 
         layoutParams.screenBrightness = (float)255/255; 
         getWindow().setAttributes(layoutParams); 

         timerforblinking.purge(); 
         timerforblinking.cancel(); 
        } 
       } 


      }); 
     } 

    }, 0, 500); 

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

Пожалуйста, помогите.Спасибо!

ответ

0

Передайте ссылку на активность, которая должна мигать, в Сервис и вызовите функцию activity.getWindow(). Вы можете использовать Binder для этого.

Есть поле в службе:

private Activity activity; 

И метод в вашем Binder, чтобы обновить поле:

public void setActivity(Activity activity){ 
    this.activity = activity; 
} 

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

Смежные вопросы