4 Stimmen

UiModeManager - Nachtmodus (Froyo)

Ich habe versucht, die Hintergrundbeleuchtung der Tasten in meiner Anwendung mit der Nachtmodusfunktion des UiModeManagers auszuschalten. Die Standard-Desk-Clock-Anwendung (Nexus One) schaltet die Hintergrundbeleuchtung aus, wenn sie gedimmt ist, und ich möchte das auch tun.

Ich habe versucht, den folgenden Code zu verwenden:

UiModeManager mgr = (UiModeManager) getSystemService(UI_MODE_SERVICE); mgr.setNightMode(UiModeManager.MODE_NIGHT_YES);

Die Dokumentation von UiModeManager.setNightMode(int mode) besagt dies:

Legt den Nachtmodus fest. Änderungen am Nachtmodus sind nur wirksam, wenn das Auto- oder Desk-Modus auf einem Gerät aktiviert ist.

Bedeutet das, dass das Gerät physisch in einer Schreibtisch-Dockingstation sein muss? Ich kann das Gerät in den Auto-Modus versetzen, indem ich die Methode UiModeManager.enableCarMode(int flags) verwende. Das funktioniert gut, schaltet jedoch nicht die Lichter aus, sondern dimmt nur die Bildschirmhintergrundbeleuchtung.

Gibt es eine Möglichkeit, das Gerät in den Desk-Modus zu versetzen, ohne eine physische Schreibtisch-Dockingstation zu verwenden? Da der FroYo-Quellcode noch nicht veröffentlicht wurde, kann ich mir die integrierte Desk-Clock-Anwendung nicht ansehen.

4voto

Kaloer Punkte 3783

Beantwortung meiner eigenen Frage, da der Quellcode für Froyo gerade veröffentlicht wurde:

Ich glaube nicht, dass Sie die UIModeManager-Klasse verwenden müssen. So macht es die DeskClock-App:

Fenster win = getWindow();
WindowManager.LayoutParams winParams = win.getAttributes();

// Schau mal!
winParams.buttonBrightness = WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_OFF;

win.setAttributes(winParams);

...Und es funktioniert auch für mich.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X