Jetzt registrieren » Login
« Login

Passwort vergessen?

Display Helligkeit regeln

Um aktiv im Android Forum teilnehmen zu können, musst Du Dich bei AndroidPIT registriert haben.

User-Foto
Markus Gude

Rang: Android Gottheit

Beiträge: 2.528

Eintrittsdatum: 05.06.2009

Display Helligkeit regeln
verfasst am 29.06.2010 11:04:13
Hallo

ich möchte in einem Service die globale Display Helligkeit regeln.

Ist das möglich?? Weiß wer wie man das macht?

Danke schonmal

-----
swordiApps Blog - Website

Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
User-Foto
Michael G.de

Rang: Android SilverSenior

Beiträge: 878

Eintrittsdatum: 09.01.2010

RE: Display Helligkeit regeln
verfasst am 29.06.2010 11:10:58 (über AndroidPIT-App)
standart energisteuerungswidget? oder app quick setting.

-----
Meld Dich mit meinen Link http://db.tt/keGqlyI bei Dropbox an, und wir haben je 250Mb mehr *** Milestone 2.3.4 CM7 ***

Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
User-Foto
Markus Gude

Rang: Android Gottheit

Beiträge: 2.528

Eintrittsdatum: 05.06.2009

RE: Display Helligkeit regeln
verfasst am 29.06.2010 11:22:31
Michael Geretschläger
standart energisteuerungswidget? oder app quick setting.

hehe danke ;)

wir sind hier im entwickler forum - ich will das mit meiner app machen - via source code

-----
swordiApps Blog - Website

Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
User-Foto
Michael G.de

Rang: Android SilverSenior

Beiträge: 878

Eintrittsdatum: 09.01.2010

RE: Display Helligkeit regeln
verfasst am 29.06.2010 11:28:07 (über AndroidPIT-App)
ok mann das ist echt der nachteil von andropitapp ich sehe so viel nicht nämlich nicht in welchem threat ich bin welches gerät du hast usw.

-----
Meld Dich mit meinen Link http://db.tt/keGqlyI bei Dropbox an, und wir haben je 250Mb mehr *** Milestone 2.3.4 CM7 ***

Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
User-Foto
Jörg V.de

Status: Administrator

Rang: Android Gottheit

Beiträge: 4.912

Eintrittsdatum: 08.06.2009

RE: Display Helligkeit regeln
verfasst am 29.06.2010 11:36:45
Markus Gursch
Hallo

ich möchte in einem Service die globale Display Helligkeit regeln.

Ist das möglich?? Weiß wer wie man das macht?

Danke schonmal

Sollte theoretisch mit der Methode PutString aus System.Settings gehen und der Eigenschaft "SCREEN_BRIGHTNESS"
Nachzulesen unter:
http://developer.android.com/reference/android/provider/Settings.System.html

-----
lg Voss - Ach ja und noch was, unsere AndroidPIT-Regeln ლ(╹◡╹ლ)

Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
User-Foto
Markus Gude

Rang: Android Gottheit

Beiträge: 2.528

Eintrittsdatum: 05.06.2009

RE: Display Helligkeit regeln
verfasst am 29.06.2010 11:42:35
danke das klingt schonmal gut

ich habe jetzt
Settings.System.putString(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, Integer.toString(value));

value ist entweder 0 oder 255

es passiert nur leider gar nichts

muss man das irgendwie bestätigen vielleicht, damit man am display einen unterschied sieht?

vielen dank
lg

-----
swordiApps Blog - Website

Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
User-Foto
Kay J.de

Rang: Klassensprecher

Beiträge: 47

Eintrittsdatum: 06.05.2010

RE: Display Helligkeit regeln
verfasst am 29.06.2010 13:00:37 (über AndroidPIT-App)
such mal bei dem link oben nach screen_brightness_mode :)
evtl is auf automatisch musste aber manuell


mfg
Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
User-Foto
Jochen Rühlde

Rang: Android HiWi

Beiträge: 119

Eintrittsdatum: 27.10.2009

RE: Display Helligkeit regeln
verfasst am 30.06.2010 18:03:48
Das scheint zu funktionieren...

1int brightness = 255;
2Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, brightness);
3
4WindowManager.LayoutParams lp = getWindow().getAttributes();
5lp.screenBrightness = brightness / 100.0f;
6getWindow().setAttributes(lp);

Verlässt man dann die Aktivity, so bleibt die Helligkeitseinstellung erhalten.
Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
User-Foto
Jörg V.de

Status: Administrator

Rang: Android Gottheit

Beiträge: 4.912

Eintrittsdatum: 08.06.2009

RE: Display Helligkeit regeln
verfasst am 30.06.2010 19:24:23
Markus Gursch
danke das klingt schonmal gut

ich habe jetzt
Settings.System.putString(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, Integer.toString(value));

value ist entweder 0 oder 255

es passiert nur leider gar nichts

muss man das irgendwie bestätigen vielleicht, damit man am display einen unterschied sieht?

vielen dank
lg
Hmm schon merkwürdig .. wozu gibt es dann die Methode putString()?

-----
lg Voss - Ach ja und noch was, unsere AndroidPIT-Regeln ლ(╹◡╹ლ)

Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
User-Foto
Markus Gude

Rang: Android Gottheit

Beiträge: 2.528

Eintrittsdatum: 05.06.2009

RE: Display Helligkeit regeln
verfasst am 30.06.2010 19:36:11
Jochen Rühl
Das scheint zu funktionieren...

1int brightness = 255;
2Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, brightness);
3
4WindowManager.LayoutParams lp = getWindow().getAttributes();
5lp.screenBrightness = brightness / 100.0f;
6getWindow().setAttributes(lp);

Verlässt man dann die Aktivity, so bleibt die Helligkeitseinstellung erhalten.

ich hab das ganze in einem hintergrund service - da gibt es keine getwindow() soviel ich gesehen habe.

hmmm das is wohl nicht so gut

-----
swordiApps Blog - Website

Antworten mit Zitat Antworten Link ±0     (0 Stimmen)
User-Foto
Jochen Rühlde

Rang: Android HiWi

Beiträge: 119

Eintrittsdatum: 27.10.2009

RE: Display Helligkeit regeln
verfasst am 30.06.2010 19:47:49 — geändert am 01.07.2010 07:30:09
Sorry, hatte ich überlesen...

Früher ging das wohl mal so:
1IHardwareService hardware = IHardwareService.Stub.asInterface(ServiceManager.getService("hardware"));
2hardware.setScreenBacklight(brightness);

Seit Cupcake geht das leider nicht mehr. :(

Nachtrag:
Mit Reflection kann man Zugriff auf den HardwareService bekommen, jedoch scheint die Methode setScreenBacklight(int) nicht mehr vorhanden zu sein.

Nachtrag 2:
Die Methode setScreenBacklight(int) ist wohl ins Power-Management gewandert.
Zugriff auf die Methode könnte man theoretisch so bekommen (ist BeanShell Code, deshalb etwas verkürzt):

1iHardwareServiceStubClass = Class.forName("android.os.IPowerManager$Stub");
2serviceMangerClass = Class.forName("android.os.ServiceManager");
3
4 asInterfaceMethod = iHardwareServiceStubClass.getMethod("asInterface", new Class[] { android.os.IBinder.class });
5
6serviceMethod = serviceMangerClass.getMethod("getService", new Class[] { String.class });
7hardwareService = serviceMethod.invoke(null, new Object[] { "power" });
8
9power = asInterfaceMethod.invoke(null, new Object[] { hardwareService });
10
11power.setBacklightBrightness(100);

Dies resultiert jedoch in folgender Exception:
1java.lang.SecurityException: Neither user 10044 nor current process has android.permission.DEVICE_POWER.

Leider ist die Berechtigung DEVICE_POWER nur für Anwendungen mit einem System Zertifikat möglich!
Antworten mit Zitat Antworten Link ±0     (0 Stimmen)

AndroidPIT unterstützen

Gefällt Dir AndroidPIT? Wir freuen uns, wenn Du uns unterstützt. Wie das geht? Klicke einfach auf die unten stehenden Links.

Weiterempfehlen

Gefällt Dir AndroidPIT? Dann empfiehl uns bitte weiter!

Fragen / Hilfe

Du hast Fragen zu AndroidPIT oder willst noch mehr erfahren? Diese Links helfen Dir vielleicht weiter...

  Du liest gerade: Display Helligkeit regeln - Android Forum - AndroidPIT. Alle Zeitangaben in UTC+01:00. Es ist jetzt 19:52 Uhr.