Androidでフラッシュに対応しているカメラのIDを調べる

公開日: 2021年02月26日最終更新日: 2022年01月28日

Androidでカメラのフラッシュライトだけ使いたいときに、onTorchModeChangedよりも前の時点でフラッシュライトに対応しているカメラのCameraIdを取得したかった。

CameraCharacteristics.FLASH_INFO_AVAILABLEを見ていけばいいみたい。

cameraManager = context.getSystemService(Context.CAMERA_SERVICE) as CameraManager
val cameraIds: Array<String> = cameraManager.cameraIdList
for (id in cameraIds) {
    val info: CameraCharacteristics = cameraManager.getCameraCharacteristics(id)
    if (info.get(CameraCharacteristics.FLASH_INFO_AVAILABLE) as Boolean) {
        cameraID = id
        Log.d("Flashlight", "camera ID: $cameraID")
    }
}