สำหรับอุปกรณ์ที่ใช้ 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 ของคุณแสดงลักษณะกล้องต่อไปนี้ คีย์เพื่อรองรับฟีเจอร์การควบคุมความสว่างของไฟฉาย
ดูการใช้งาน Camera 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