【问题标题】:Can I change the LED intensity of an Android device?我可以更改 Android 设备的 LED 强度吗?
【发布时间】:2023-03-19 14:27:02
【问题描述】:

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

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

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

【问题讨论】:

  • 我不这么认为,但我不确定。如果是这样,它肯定不会在所有设备上运行。您也可以考虑删除 [flash] 标签,因为它是针对 Adob​​e flash 的,有人可能会期待与此相关的问题。
  • 我的 HTC Evo 带有一个使用 LED“闪光灯”的“手电筒”功能,并具有三种不同的亮度设置。也像冠军一样工作。所以必须有 some 方法来做到这一点。由于它是一个内置应用程序,我想它可能是特定于设备的。
  • 希望我的回答能帮到你。

标签: android camera led flashlight camera-flash


【解决方案1】:

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" 将其关闭。

【讨论】:

【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

    * FLASH_MODE_OFF
    * FLASH_MODE_AUTO
    * FLASH_MODE_ON
    * FLASH_MODE_RED_EYE
    * FLASH_MODE_TORCH
    

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

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

    【讨论】:

      【解决方案4】:

      尝试查找该函数的代码:

      private native final void native_setParameters(String params);
      

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

      publics,好像不可能

      【讨论】:

        【解决方案5】:

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

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-02-19
          • 1970-01-01
          相关资源
          最近更新 更多