我可以更改Android设备的LED亮度吗?

有没有一种方法来设定我想要的LED强度? 我知道要打开我使用的LED:

p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH); mycam.setParameters(p); 

但是这个代码只是打开LED。 但是,是否有办法为LED设置不同的强度来获得更强的光线或降低光线强度?

HTC有一个支持这个的替代API,但是它只在HTC Sense设备上,而且从Gingerbread开始,他们已经改变了权限,所以只能用于他们的手电筒应用程序,而不是第三方应用程序(除非你使用root)。

但在HTC设备上,您可以通过向/sys/devices/platform/flashlight.0/leds/flashlight/brightness写入string来使用它。 这控制着LED是否点亮,亮度如何。 对于最大亮度写入"128\n" ,半亮度写入"64\n" 。 容易从adbshelltesting:

 echo "128" > /sys/devices/platform/flashlight.0/leds/flashlight/brightness 

最后在"0\n"写下来。

简短的回答是:没有。
较长的答案 – 也许在一些使用不确定呼叫/参数的设备上。 支持的闪光灯模式及其含义(和行为)因设备而异。

你最好的select是查询支持的闪光灯模式,并希望他们工作的意图。

尝试为摄像机参数设置不同的闪光模式。

 * FLASH_MODE_OFF * FLASH_MODE_AUTO * FLASH_MODE_ON * FLASH_MODE_RED_EYE * FLASH_MODE_TORCH 

您可以使用setFlashMode()方法设置Flash模式。

这只是照相机背光。 但如果你想改变完整的屏幕强度。 看看这里的例子。

试着find这个函数的代码:

 private native final void native_setParameters(String params); 

我相信你会发现,如果这是可能的,当你通过它看看。

看着public ,似乎是不可能的

我已经在我的三星Galaxy S3 Mini中尝试过。 我还没有尝试过其他设备。

每当我这样做的时候(而led是开):

 public void changeIntensity() { cam.stopPreview(); cam.startPreview(); } 

LED在3级强度之间旋转。 这是没有意义的,但它的工作。