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 테스트를 실행합니다.
- VTS:
/camera/provider/aidl/vts/VtsAidlHalCameraProvider\_TargetTest.cpp
- CTS:
/platform/cts/tests/camera/src/android/hardware/camera2/cts/FlashlightTest.java