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

问题描述 投票:0回答:6

有没有办法设置我想要的 LED 强度?我知道要打开 LED,我使用:

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

但是这段代码只是打开 LED。但有没有办法给LED设置不同的强度以获得更强的光或降低光强度?

android camera led flashlight camera-flash
6个回答
27
投票

HTC 有一个支持此功能的替代 API,但它仅适用于 HTC Sense 设备,并且从 Gingerbread 开始,他们已经更改了权限,因此仅适用于他们的 Flashlight 应用程序,不适用于第三方应用程序(除非您使用 root)。

但在 2.2 HTC 设备上,您可以通过向

/sys/devices/platform/flashlight.0/leds/flashlight/brightness
写入字符串来使用它。这控制 LED 是否打开以及它的亮度。对于最大亮度写
"128\n"
,半亮度写
"64\n"
。易于从 adb shell 进行测试:

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

最后通过写

"0\n"
将其关闭。


5
投票

简短的回答是:不。
更长的答案 - 也许在某些使用 undocumenterd 调用/参数的设备上。 支持的闪光灯模式及其含义(和行为)因设备而异。

您最好的选择是查询支持的闪光灯模式,并希望它们按预期工作。


4
投票

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

* FLASH_MODE_OFF
* FLASH_MODE_AUTO
* FLASH_MODE_ON
* FLASH_MODE_RED_EYE
* FLASH_MODE_TORCH

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

这仅用于相机背光。但如果你想改变整个屏幕的强度。看看这里的例子。


2
投票
尝试找到这个函数的代码:

private native final void native_setParameters(String params);

相信你看完后就会知道这是否可行。

public

,好像不可能


2
投票
我已经在我的三星 Galaxy S3 Mini 上尝试过此操作。我没有在其他设备上尝试过。

每当我这样做时(当 LED 亮起时):

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

LED 在 3 个强度级别之间旋转。这没有任何意义,但它有效。


0
投票
此功能仅适用于运行

Android 13 或更高版本的 Android 设备。

Android 文档 示例代码

© www.soinside.com 2019 - 2024. All rights reserved.