ui_3k1
Gesperrt
- 197
Hallo,
ich habe einen Service der lediglich ein Widget darstellt. Die Daten erhält dieser Service von einem zweiten Service mittels Broadcast-Receiver und letztlich refresht ein Thread (im Widget-Service) dann das Widget.
Das funktioniert gut.
Nun möchte ich das Verhalten des Widgets so verändern, dass immer wenn es sichtbar ist (also der Service läuft), das Flag FLAG_KEEP_SCREEN_ON gesetzt ist. Habe schon versucht dem Intent, der den Widget-Service aufruft, das Flag zu übergeben und ebenfalls versucht das Flag im Service selbst zu setzen. Ohne Erfolg... Der Bildschirm schaltet nach der in den Einstellungen voreingestellen Zeit ab.
getWindow lässt sich innerhalb des Service nicht aufrufen und die WakeLock-Methoden sind seit API 13 teilweise nicht mehr "vorgesehen".
Jemand einen Tipp, wie man die es hinbekommt, dass sobald der Service läuft der Bildschirm aktiv bleibt?
Danke vorab!
Nachtrag: hab gerade noch schnell eine Lösung ausprobiert, von der Google allerdings abrät. Das funktioniert:
-> allerdings auch nur, wenn vom Broadcast-Receiver aufgerufen. In onCreate() des Service aufgerufen, funktioniert es wiederum nicht.
Weiß jemand den Grund?
ich habe einen Service der lediglich ein Widget darstellt. Die Daten erhält dieser Service von einem zweiten Service mittels Broadcast-Receiver und letztlich refresht ein Thread (im Widget-Service) dann das Widget.
Das funktioniert gut.
Nun möchte ich das Verhalten des Widgets so verändern, dass immer wenn es sichtbar ist (also der Service läuft), das Flag FLAG_KEEP_SCREEN_ON gesetzt ist. Habe schon versucht dem Intent, der den Widget-Service aufruft, das Flag zu übergeben und ebenfalls versucht das Flag im Service selbst zu setzen. Ohne Erfolg... Der Bildschirm schaltet nach der in den Einstellungen voreingestellen Zeit ab.
getWindow lässt sich innerhalb des Service nicht aufrufen und die WakeLock-Methoden sind seit API 13 teilweise nicht mehr "vorgesehen".
Jemand einen Tipp, wie man die es hinbekommt, dass sobald der Service läuft der Bildschirm aktiv bleibt?
Danke vorab!
Nachtrag: hab gerade noch schnell eine Lösung ausprobiert, von der Google allerdings abrät. Das funktioniert:
Code:
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "Wake Lock");
-> allerdings auch nur, wenn vom Broadcast-Receiver aufgerufen. In onCreate() des Service aufgerufen, funktioniert es wiederum nicht.
Weiß jemand den Grund?
Zuletzt bearbeitet: