1# Interface (AutoDeviceSwitch) 2<!--Kit: Camera Kit--> 3<!--Subsystem: Multimedia--> 4<!--Owner: @qano--> 5<!--Designer: @leo_ysl--> 6<!--Tester: @xchaosioda--> 7<!--Adviser: @zengyawen--> 8 9> **说明:** 10> 11> - 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 12> - 本Interface首批接口从API version 13开始支持。 13 14AutoDeviceSwitch 继承自 [AutoDeviceSwitchQuery](arkts-apis-camera-AutoDeviceSwitchQuery.md)。 15 16自动切换镜头类,继承自[AutoDeviceSwitchQuery](arkts-apis-camera-AutoDeviceSwitchQuery.md),用于使能或去使能自动切换镜头。 17 18使用建议:自动切换镜头功能由系统自动完成输入设备切换、会话配置和参数接续, 19如系统发现镜头切换时,两颗镜头的变焦范围不一致,则会通过[AutoDeviceSwitchStatus](arkts-apis-camera-i.md#autodeviceswitchstatus13)中的isDeviceCapabilityChanged字段告知应用, 20但仍需要应用自己处理UX的变更(如变焦范围的调整,需要重新通过[getZoomRatioRange](arkts-apis-camera-ZoomQuery.md#getzoomratiorange11)接口获取数据并更新UX), 21因此更适用于极简UX交换的场景。 22 23## 导入模块 24 25```ts 26import { camera } from '@kit.CameraKit'; 27``` 28 29## enableAutoDeviceSwitch<sup>13+</sup> 30 31enableAutoDeviceSwitch(enabled: boolean): void 32 33使能或去使能自动切换镜头。可以先通过[isAutoDeviceSwitchSupported](arkts-apis-camera-AutoDeviceSwitchQuery.md#isautodeviceswitchsupported13)获取当前设备是否支持自动切换镜头。 34 35> **说明:** 36> 该接口仅用于有多个前置镜头的折叠设备,在不同的折叠状态下可自动切换到当前可使用的前置镜头。无法实现前后置镜头的切换。 37 38**原子化服务API:** 从API version 19开始,该接口支持在原子化服务中使用。 39 40**系统能力:** SystemCapability.Multimedia.Camera.Core 41 42**参数:** 43 44| 参数名 | 类型 | 必填 | 说明 | 45| ----------- |---------------------- |---| -------------------------- | 46| enabled | boolean | 是 | 使能或去使能自动切换镜头。true表示使能,false表示不使能。 | 47 48**错误码:** 49 50以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 51 52| 错误码ID | 错误信息 | 53|---------|------------------------------------------------------------------------------------------------------------------------------------------------| 54| 7400101 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameters verification failed. | 55| 7400102 | Operation not allowed. | 56| 7400103 | Session not config. | 57| 7400201 | Camera service fatal error. | 58 59**示例:** 60 61```ts 62import { BusinessError } from '@kit.BasicServicesKit'; 63 64function enableAutoDeviceSwitch(session: camera.PhotoSession, isEnable: boolean): void { 65 try { 66 session.enableAutoDeviceSwitch(isEnable); 67 } catch (error) { 68 let err = error as BusinessError; 69 console.error(`The enableAutoDeviceSwitch call failed, error code: ${err.code}`); 70 } 71} 72``` 73