Android 13 以降を搭載したデバイスでは、Android フレームワークでトーチの強さをマルチレベルでコントロールできます。Android 12 以前では、フレームワークでトーチモードのオン / オフのみが可能です。トーチの強さをマルチレベルでコントロールできるため、照明条件に基づいてライトの明るさをコントロールする、高速で点滅する光を連続で送信しストロボ効果を使用して SOS シグナルを送信するなどの使用例が実現します。この機能のもう 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 テストを実行します。