如果裝置搭載 Android 13 以上版本,Android 架構會提供多層級的手電筒強度控制。在 Android 12 以下版本中,架構只允許開啟或關閉手電筒模式。支援多層級手電筒強度控制後,裝置就能啟用各種用途,例如根據照明狀況控制手電筒亮度,以及連續快速發出光脈衝,透過閃光燈效果傳送求助信號。這項功能的另一項優點是可延長電池續航力和提升效能,因為手電筒模式不一定需要以最大亮度開啟,否則可能會導致熱節流情況。
公開 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 測試: