AR セッション中にデバイスのフラッシュ ユニットを有効にすると、視認性が向上します。
現在のカメラの設定がフラッシュに対応していることを確認する
カメラの構成によっては、フラッシュ ユニットの有効化がサポートされていない場合があります。フラッシュを有効にするか、フラッシュを有効にするオプションをユーザーに提供する前に、アクティブなカメラ構成でフラッシュ ユニットを使用できることを確認します。
Java
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 セッションを構成して、フラッシュ ユニットを有効にします。
Java
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 }) }
フラッシュを無効にする
Config.FlashMode.OFF
を使用して AR セッションを構成して、フラッシュ ユニットを無効にします。
Java
Config config = session.getConfig(); config.setFlashMode(Config.FlashMode.OFF); session.configure(config);
Kotlin
session.configure(session.config.apply { flashMode = Config.FlashMode.OFF })