Frage

Ich möchte in android die Bildschirmhelligkeit programmatisch ändern. Im Moment benutze ich diesen Code ein:

WindowManager.LayoutParams lp = getWindow().getAttributes();
float brightness=1.0f;
lp.screenBrightness = brightness;
getWindow().setAttributes(lp);

Aber dieser Beispielcode arbeitet an kleinen Kuchen, nicht auf den neuesten Versionen. Ich bin die neueste Version von SDK .. Was für neuere Android-Versionen die bevorzugte Lösung ist?

War es hilfreich?

Lösung

Wie über die IHardwareService Schnittstelle für diese Verwendung? Ein Beispiel kann in diesem Tutorial .

Update:. Tutorial Link funktioniert noch, aber eigentliche Code ist auch in der nächsten Antwort verfügbar

Andere Tipps

Dies ist möglich durch die Verwendung zu tun:

WindowManager.LayoutParams layout = getWindow().getAttributes();
layout.screenBrightness = 1F;
getWindow().setAttributes(layout);

Siehe auch: http://developer.android.com/reference/android/view /WindowManager.LayoutParams.html#screenBrightness

Sie haben params Window hinzuzufügen, bevor es erstellt wird, sonst wird es werfen java.lang.IllegalArgumentException: Window type can not be changed after the window is added.

Siehe das Beispiel mit einem android.app.Dialog.Dialog.

final Dialog dialog = new Dialog(this) {
            @Override
            public void onAttachedToWindow() {
                super.onAttachedToWindow();
                WindowManager.LayoutParams layout = getWindow()
                        .getAttributes();
                layout.screenBrightness = 1F;
                getWindow().setAttributes(layout);
            }
        };
        dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
        dialog.show();

Bitte beachten Sie, dass Helligkeitswert zwischen 0.0f und 1.0F ist.

@kamal_tech_view: Sie müssen Wert konvertieren layout.screenBrightness = Wert; schweben

Zu spät Antwort aber will .. verbessern

Ich habe versucht, mit Tor-Mortens Code, aber es ist für bestimmte Bildschirm selbst, wollte ich überall ändern, habe ich Dienst für das.

ändern Helligkeit nach Umgebungslicht in android

Hoffnung, es wird für andere nützlich sein.

final Dialog dialog = new Dialog(act);
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        dialog
                .setContentView(R.layout.menubase_brightness_control);
        dialog.setCanceledOnTouchOutside(true);

        SeekBar global_brightness_control = (SeekBar) dialog
                .findViewById(R.id.global_brightness_control);
        global_brightness_control.setMax(255);
        global_brightness_control.setProgress(Settings.System.getInt(
                con.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS));

        global_brightness_control
                .setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {

                    public void onStopTrackingTouch(SeekBar seekBar) {
                        // TODO Auto-generated method stub

                    }

                    public void onStartTrackingTouch(SeekBar seekBar) {
                        // TODO Auto-generated method stub

                    }

                    public void onProgressChanged(SeekBar seekBar,
                                                  int progress, boolean fromUser) {
                        Settings.System
                                .putInt(con.getContentResolver(),
                                        Settings.System.SCREEN_BRIGHTNESS, progress);
                    }
                });

        dialog.show();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top