Запускает SCREEN_ON событие Android через фоновую службу

#android #android-service

#Android #android-сервис

Вопрос:

Как я могу создать SCREEN_ON событие, если мой телефон находится в SCREEN_OFF . Или, другими словами, как я могу создать некоторое намерение, чтобы оно вызывало экран моего телефона из выключенного состояния во включенное.

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

Комментарии:

1. Проверьте мой ответ

Ответ №1:

 Try this:
  private void screenOn() {
        try {
            PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
            boolean isScreenOn;
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH) {
                isScreenOn = pm.isInteractive();
            }
            else {
                isScreenOn = pm.isScreenOn();
            }
            if(!isScreenOn){
                KeyguardManager km = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
                KeyguardManager.KeyguardLock kl = km .newKeyguardLock("MyKeyguardLock");
                kl.disableKeyguard();

                PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK |PowerManager.ACQUIRE_CAUSES_WAKEUP |PowerManager.ON_AFTER_RELEASE,"MyLock");
                wl.acquire(10000);
//                PowerManager.WakeLock wl_cpu = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,"MyCpuLock");
//                wl_cpu.acquire(10000);
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
  

Комментарии:

1. вызывайте эту функцию из любого нужного вам места в вашем сервисе

2. Это делает экран включенным, когда экран выключен, я также вызываю эту функцию в службе.

3. Большинство функций устарели. Я пытался, но мое устройство не просыпается, если его экран выключен.