#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. Большинство функций устарели. Я пытался, но мое устройство не просыпается, если его экран выключен.