Android SDK (Kotlin/Java)에서 기기의 플래시 장치 사용

AR 세션 중에 기기의 플래시 장치를 사용 설정하면 가시성을 개선하는 데 도움이 될 수 있습니다.

현재 카메라 구성에서 플래시를 지원하는지 확인

일부 카메라 구성에서는 플래시 장치 사용 설정을 지원하지 않습니다. 플래시를 사용 설정하거나 사용자에게 플래시를 사용 설정하는 옵션을 제공하기 전에 활성 카메라 구성에서 플래시 장치를 사용할 수 있는지 확인합니다.

자바

boolean flashAvailable;
try {
  CameraManager cameraManager =
      (CameraManager) context.getSystemService(Context.CAMERA_SERVICE);

  CameraCharacteristics characteristics =
      cameraManager.getCameraCharacteristics(session.getCameraConfig().getCameraId());
  flashAvailable = characteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE);
} catch (Exception e) {
  flashAvailable = false;
}

Kotlin

val flashAvailable =
  runCatching {
      val cameraManager = context.getSystemService(Context.CAMERA_SERVICE) as CameraManager
      val characteristics = cameraManager.getCameraCharacteristics(session.cameraConfig.cameraId)
      characteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE)
    }
    .getOrNull() ?: false

플래시 장치 사용

Config.FlashMode.TORCH로 AR 세션을 구성하여 플래시 장치를 사용 설정합니다.

자바

if (flashAvailable) {
  Config config = session.getConfig();
  config.setFlashMode(Config.FlashMode.TORCH);
  session.configure(config);
}

Kotlin

if (flashAvailable) {
  session.configure(session.config.apply { flashMode = Config.FlashMode.TORCH })
}

플래시 장치 사용 중지

다음 명령어로 AR 세션을 구성하여 플래시 장치를 사용 중지합니다. Config.FlashMode.OFF:

자바

Config config = session.getConfig();
config.setFlashMode(Config.FlashMode.OFF);
session.configure(config);

Kotlin

session.configure(session.config.apply { flashMode = Config.FlashMode.OFF })