web-dev-qa-db-ja.com

AndroidデバイスのLED強度を変更できますか?

私が望むLEDの強度を設定する方法はありますか?私が使用するLEDをオンにすることを知っています:

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

しかし、このコードはLEDをオンにするだけです。しかし、より強い光のためにLEDに異なる強度を設定する方法、または光の強度を下げる方法はありますか?

35
Buda Gavril

HTCにはこれをサポートする代替APIがありますが、HTC Senseデバイスのみにあり、Gingerbreadの時点で権限を変更しているため、サードパーティのものではなく、Flashlightアプリ専用です(ルートを使用しない限り)。

ただし、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"と書いてオフにします。

26
Kevin TeslaCoil

簡単な答え:いいえ。
長めの回答-文書化されていない呼び出し/パラメータを使用している一部のデバイスで。サポートされるフラッシュモード、およびその意味(および動作)はデバイスによって異なります。

最適なオプションは、サポートされているフラッシュモードを照会し、意図したとおりに機能することを期待することです。

5

カメラのパラメーターに使用可能なさまざまなフラッシュモードを設定してみてください。

* FLASH_MODE_OFF
* FLASH_MODE_AUTO
* FLASH_MODE_ON
* FLASH_MODE_RED_EYE
* FLASH_MODE_TORCH

setFlashMode()メソッドを使用してFlashモードを設定できます。

これは単にカメラのバックライト用でした。ただし、完全な画面強度を変更する場合。例をご覧ください here。

4
N-JOY

Samsung Galaxy S3 Miniでこれを試しました。他のデバイスで試したことはありません。

私がこれを行うたびに(LEDが点灯している間):

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

LEDは3段階の強度で回転します。意味はありませんが、機能します。

2
MXS

この関数のコードを見つけてください:

private native final void native_setParameters(String params);

私はあなたがそれを見通すときにこれが可能かどうかを知ることになると信じています。

publicsを見ると、不可能なようです

2
Sherif elKhatib