获取屏幕的当前亮度

时间:2011-06-10 08:32:34

标签: android hardware

目前,我正在使用以下代码来获取当前屏幕亮度

...
// for HTC Nexus One and HTC Desire
String cmd = "cat /sys/class/leds/lcd-backlight/brightness";
java.lang.Process p = Runtime.getRuntime().exec(cmd); 
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()),cmd.length());
...

当我用来获得HTC设备(Nexus One,Desire)的亮度时,这没关系。但是当在三星Galaxy S上运行此代码时,此代码无效,因为“cmd”中的路径在此设备上是错误的。问题是我没有三星Galaxy S来找出正确的亮度路径。 那么请你告诉我三星Galaxy S设备的正确路径或其他方法来完成这项任务! 谢谢,

3 个答案:

答案 0 :(得分:9)

我知道人们已经为您提供了更好的设备亮度方法。不要否认,但出于好奇,如果你想找到存储亮度的相关文件,这里就是:

  • Nexus S: /sys/devices/platform/s3cfb/spi_gpio.3/spi3.0/backlight/s5p_bl/brightness
  • Galaxy Y: /sys/devices/platform/aat1401-backlight.0/backlight/aat1401-backlight/brightness
  • Galaxy S: /sys/devices/platform/omap2_mcspi.1/spi1.0/backlight/omap_bl/actual_brightness

在Galaxy S上,似乎还有一个名为brightness的文件,但actual_brightness似乎更准确。它捕获设备的屏幕在一定的空闲时间后变为半亮。

简而言之,三星设备上似乎没有标准的路径/文件。当然,这不是获得亮度的最佳方式,但如果你很好奇,上面就是一些文件。

最好的方法是从桌面上运行

adb shell ls -R /sys/devices >files.txt

然后

grep -i  bright files.txt

: - )

答案 1 :(得分:6)

我能找到的最简单的一个,用adb:

来获得屏幕亮度
adb shell settings get system screen_brightness

答案 2 :(得分:4)