Android 13 以降を搭載したデバイスでは、Android フレームワークでトーチの強さをマルチレベルで制御できます。Android 12 以前では、フレームワークでトーチモードのオン / オフのみが可能です。トーチの強さのマルチレベルでの制御をサポートすることで、デバイスでは、照明条件に基づいてライトの明るさを制御する、高速で点滅する光を連続で送信しストロボ効果を使用して助けを求めるシグナルを送信するなどのユースケースが可能になります。この機能のもう 1 つのメリットは、必ずしもトーチモードを最大の強さでオンにする(サーマル スロットリングの状態につながる可能性があります)必要はないため、バッテリー寿命とパフォーマンスを改善できる点です。
公開 API
アプリは、以下の公開 API とカメラ特性キーを介して、トーチの強さの制御機能を使用できます。カメラにはアクセスしないため、これらの API にカメラの権限は必要ありません。
CameraManager
API
public void turnOnTorchWithStrengthLevel (String cameraId, int torchStrength)
: トーチモードで、指定されたcameraId
値に関連付けられたライトの明るさレベルを設定します。トーチモードがオフで、torchStrength
が1
以上の場合、トーチはtorchStrength
で指定された強さのレベルでオンになります。public int getTorchStrengthLevel (String cameraId)
:cameraId
に関連付けられたフラッシュ ユニットの明るさレベルを返します。
CameraCharacteristics
キー
FLASH_INFO_STRENGTH_MAXIMUM_LEVEL
: 最大の明るさレベル。カメラ HAL は、1
より大きい値を設定して、この機能をアドバタイズします。FLASH_INFO_STRENGTH_DEFAULT_LEVEL
: ライトのデフォルトの明るさレベル。
実装
デバイスでトーチの強さの制御機能をサポートするには、次のカメラ AIDL HAL インターフェースを使用します。
場所: /camera/device/aidl/android/hardware/camera/device/ICameraDevice.aidl
HAL 実装が次のカメラ特性キーをアドバタイズし、トーチの明るさの制御機能がサポートされていることを確認します。
トーチの強さの制御をサポートするカメラ HAL リファレンス実装については、EmulatedCameraDeviceHWLImpl.cpp
をご覧ください。
検証
トーチの強さの制御機能の実装を検証するには、次の VTS テストと CTS テストを実行します。
- VTS:
/camera/provider/aidl/vts/VtsAidlHalCameraProvider\_TargetTest.cpp
- CTS:
/platform/cts/tests/camera/src/android/hardware/camera2/cts/FlashlightTest.java