在 Android SDK (Kotlin/Java) 上使用设备的闪存单元
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
在 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 })
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-07-26。
[null,null,["最后更新时间 (UTC):2025-07-26。"],[[["\u003cp\u003eEnabling the device's flash during an AR session can enhance visibility in low-light environments.\u003c/p\u003e\n"],["\u003cp\u003eBefore enabling the flash, verify if the active camera configuration supports it using \u003ccode\u003eCameraCharacteristics.FLASH_INFO_AVAILABLE\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eUse \u003ccode\u003eConfig.FlashMode.TORCH\u003c/code\u003e to enable the flash and \u003ccode\u003eConfig.FlashMode.OFF\u003c/code\u003e to disable it within the AR session configuration.\u003c/p\u003e\n"],["\u003cp\u003eAttempting to enable the flash on an unsupported camera configuration will have no adverse effect.\u003c/p\u003e\n"]]],["To use the device's flash in an AR session, first verify if the current camera configuration supports it using `CameraCharacteristics.FLASH_INFO_AVAILABLE`. If available, enable the flash by setting the AR session's configuration to `Config.FlashMode.TORCH`. This is done through a camera manager service. If not available setting it will have no effect. To disable the flash, set the session's configuration to `Config.FlashMode.OFF`. Code examples in both Java and Kotlin are provided.\n"],null,["# Use the device's flash unit on Android SDK (Kotlin/Java)\n\n\u003cbr /\u003e\n\nEnabling the device's flash unit during an AR session can help improve\nvisibility.\n\nCheck that the current camera configuration supports flash\n----------------------------------------------------------\n\nNot all camera configurations support enabling a flash unit.\nBefore enabling the flash or offering users the option to enable the flash,\nensure that the flash unit is available for the active camera\nconfiguration: \n\n### Java\n\n```java\nboolean flashAvailable;\ntry {\n CameraManager cameraManager =\n (CameraManager) context.getSystemService(Context.CAMERA_SERVICE);\n\n CameraCharacteristics characteristics =\n cameraManager.getCameraCharacteristics(session.getCameraConfig().getCameraId());\n flashAvailable = characteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE);\n} catch (Exception e) {\n flashAvailable = false;\n}\n```\n\n### Kotlin\n\n```kotlin\nval flashAvailable =\n runCatching {\n val cameraManager = context.getSystemService(Context.CAMERA_SERVICE) as CameraManager\n val characteristics = cameraManager.getCameraCharacteristics(session.cameraConfig.cameraId)\n characteristics.get(CameraCharacteristics.FLASH_INFO_AVAILABLE)\n }\n .getOrNull() ?: false\n```\n\nEnable the flash unit\n---------------------\n\nEnable the flash unit by configuring the AR session with\n[`Config.FlashMode.TORCH`](/ar/reference/java/com/google/ar/core/Config.FlashMode): \n\n### Java\n\n```java\nif (flashAvailable) {\n Config config = session.getConfig();\n config.setFlashMode(Config.FlashMode.TORCH);\n session.configure(config);\n}\n```\n\n### Kotlin\n\n```kotlin\nif (flashAvailable) {\n session.configure(session.config.apply { flashMode = Config.FlashMode.TORCH })\n}\n```\n| **Note:** Configuring [`Config.FlashMode.TORCH`](/ar/reference/java/com/google/ar/core/Config.FlashMode) with a camera configuration that does not support a flash unit will have no effect.\n\nDisable the flash unit\n----------------------\n\nDisable the flash unit by configuring the AR session with\n[`Config.FlashMode.OFF`](/ar/reference/java/com/google/ar/core/Config.FlashMode): \n\n### Java\n\n```java\nConfig config = session.getConfig();\nconfig.setFlashMode(Config.FlashMode.OFF);\nsession.configure(config);\n```\n\n### Kotlin\n\n```kotlin\nsession.configure(session.config.apply { flashMode = Config.FlashMode.OFF })\n```"]]