Przed oznaczeniem tego posta jako „duplikatu” piszę ten post, ponieważ żaden inny post nie zawiera rozwiązania problemu.
Próbuję wyłączyć urządzenie, to po kilku minutach lub wymianie czujnika włącz je ponownie.
Wyłącz testy wyświetlacza
Jestem w stanie wyłączyć ekran za pomocą:
params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON;
params.screenBrightness = 0;
getWindow().setAttributes(params);
Nie udało mi się wyłączyć ekranu za pomocą metody wl.release ().
Włącz test wyświetlacza
Moje pierwsze przypuszczenie, jak następuje, nie działa. Nic się nie dzieje, ekran pozostaje wyłączony.
params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON;
params.screenBrightness = -1f;
getWindow().setAttributes(params);
Wtedy też próbowałem użyć wakelocków, ale bezskutecznie.
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "tag");
wl.acquire();
W końcu wypróbowałem następujące rozwiązania, ale bez rezultatu.
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
Podsumowując, nie pojawia się żaden błąd w konsoli dla żadnej z tych metod. Mój tekst testowy „Ekran powinien być włączony” pojawia się na ekranie, gdy włączam urządzenie przyciskiem zasilania. To pokazuje, że kod powinien był działać. Proszę o odpowiedź tylko wtedy, gdy przetestowałeś kod, wydaje się, że wiele funkcji, takich jak params.screenBrightness = -1, nie działa tak, jak powinny zgodnie z sdk.