Android 获取屏幕的当前亮度

Android 获取屏幕的当前亮度,android,hardware,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.getI

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

...
// 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设备(NexusOne,Desire)中获得亮度时,这没关系。但在三星Galaxy S上运行此代码时,此代码无效,因为此设备上“cmd”中的路径错误。问题是我没有三星Galaxy S找到正确的亮度路径。 因此,请您告诉我三星Galaxy S设备的正确路径或执行此任务的其他方法!
谢谢,

您不使用System.Settings类有什么特殊原因吗

例如:


我知道人们已经为您提供了更好的方法来实现设备亮度。不可否认,但出于好奇,如果您想找到存储亮度的相关文件,请参见:

  • Nexus S:
    /sys/devices/platform/s3cfb/spi\u gpio.3/spi3.0/backlight/s5p\u bl/brightness
  • Galaxy Y:
    /sys/devices/platform/aat1401 backlight.0/backlight/aat1401 backlight/brightness
  • Galaxy S:
    /sys/devices/platform/omap2\u mcspi.1/spi1.0/背光/omap\u bl/实际亮度
在银河系S上,似乎还有一个名为
亮度
的文件,但
实际亮度
似乎更准确。它捕捉到设备的屏幕在一段空闲时间后变得半亮

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

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

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

grep -i  bright files.txt

:-)

我能找到的最简单的方法是使用adb获得屏幕亮度:

adb shell settings get system screen_brightness

系统设置仅返回手机的设置亮度值。我想得到屏幕在特定时间的亮度值。示例:当屏幕打开时,返回值为176(与System.Settings中的值相同)。但当屏幕关闭以节省电池时,返回值为0。感谢2017年:)对我来说是
/sys/devices/mdp.0/qcom,mdss_fb_primary.171/led/lcd背光/亮度