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

플래시 장치 사용

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

자바

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 })