1# @ohos.app.ability.kioskManager (Kiosk模式管理) 2<!--Kit: Ability Kit--> 3<!--Subsystem: Ability--> 4<!--Owner: @zhu-feimo--> 5<!--Designer: @ccllee1--> 6<!--Tester: @lixueqing513--> 7<!--Adviser: @huipeizi--> 8 9KioskManager模块提供Kiosk模式管理能力,包括系统进入/退出Kiosk模式操作。 10 11Kiosk模式是一种特殊的设备锁定模式,可以确保设备界面只服务于特定的交互场景。在这种模式下,用户只能使用特定的应用。例如,在银行ATM机上,用户只能通过ATM软件进行交易操作,而不能退出该软件或切换到其他应用。 12 13> **说明:** 14> 15> - 本模块首批接口从API version 20开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 16> - 本模块接口仅可在Stage模型下使用。 17> - 本模块接口仅适用于通过[setAllowedKioskApps接口](../apis-mdm-kit/js-apis-enterprise-applicationManager.md#applicationmanagersetkioskfeatures20)配置的支持Kiosk模式的应用。 18 19## 导入模块 20 21```ts 22import { kioskManager } from '@kit.AbilityKit'; 23``` 24 25## kioskManager.enterKioskMode 26 27enterKioskMode(context: UIAbilityContext): Promise<void> 28 29进入Kiosk模式。使用Promise异步回调。 30 31**系统能力**: SystemCapability.Ability.AbilityRuntime.Core 32 33**参数**: 34 35| 参数名 | 类型 | 必填 | 说明 | 36|--------|------|------|------| 37| context | [UIAbilityContext](../apis-ability-kit/js-apis-inner-application-uiAbilityContext.md) | 是 | 当前UIAbility的上下文。 | 38 39**返回值:** 40 41| 类型 | 说明 | 42|------|------| 43| Promise<void> | 无返回结果的Promise对象。 | 44 45**错误码**: 46 47以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 48 49| 错误码ID | 错误信息 | 50|---------|---------| 51| 801 | Capability not supported. | 52| 16000050 | Internal error. | 53| 16000110 | Current application is not in kiosk app list, can not enter kiosk mode. | 54| 16000111 | System is already in kiosk mode, can not enter again. | 55| 16000113 | Current ability is not in foreground. | 56 57**示例**: 58 59```ts 60import { common, kioskManager } from '@kit.AbilityKit'; 61import { hilog } from '@kit.PerformanceAnalysisKit'; 62import { BusinessError } from '@kit.BasicServicesKit'; 63 64@Entry 65@Component 66struct Index { 67 private uiAbilityContext: common.UIAbilityContext | undefined = 68 this.getUIContext().getHostContext() as common.UIAbilityContext; 69 70 build() { 71 Column() { 72 Button('enterKioskMode').margin({ top: 30 }) 73 .onClick(() => { 74 kioskManager.enterKioskMode(this.uiAbilityContext) 75 .then(() => { 76 hilog.info(0x0000, 'testTag', '%{public}s', 'enterKioskMode success'); 77 }) 78 .catch((error: BusinessError) => { 79 hilog.error(0x0000, 'testTag', '%{public}s', `enterKioskMode failed:${JSON.stringify(error)}`); 80 }); 81 }) 82 } 83 .height('100%') 84 .width('100%') 85 } 86} 87``` 88 89## kioskManager.exitKioskMode 90 91exitKioskMode(context: UIAbilityContext): Promise<void> 92 93退出Kiosk模式。使用Promise异步回调。 94 95该接口仅对已进入Kiosk模式的应用生效。 96 97**系统能力**: SystemCapability.Ability.AbilityRuntime.Core 98 99**参数**: 100 101| 参数名 | 类型 | 必填 | 说明 | 102|--------|------|------|------| 103| context | [UIAbilityContext](../apis-ability-kit/js-apis-inner-application-uiAbilityContext.md) | 是 | 当前UIAbility的上下文。 | 104 105**返回值:** 106 107| 类型 | 说明 | 108|------|------| 109| Promise<void> | 无返回结果的Promise对象。 | 110 111**错误码**: 112 113以下错误码详细介绍请参考[通用错误码](../errorcode-universal.md)和[元能力子系统错误码](errorcode-ability.md)。 114 115| 错误码ID | 错误信息 | 116|---------|---------| 117| 801 | Capability not supported. | 118| 16000050 | Internal error. | 119| 16000110 | Current application is not in kiosk app list, can not exit kiosk mode. | 120| 16000112 | Current application is not in kiosk mode, can not exit. | 121 122**示例**: 123 124```ts 125import { common, kioskManager } from '@kit.AbilityKit'; 126import { hilog } from '@kit.PerformanceAnalysisKit'; 127import { BusinessError } from '@kit.BasicServicesKit'; 128 129@Entry 130@Component 131struct Index { 132 private uiAbilityContext: common.UIAbilityContext | undefined = 133 this.getUIContext().getHostContext() as common.UIAbilityContext; 134 135 build() { 136 Column() { 137 Button('exitKioskMode').margin({ top: 10 }) 138 .onClick(() => { 139 kioskManager.exitKioskMode(this.uiAbilityContext) 140 .then(() => { 141 hilog.info(0x0000, 'testTag', '%{public}s', 'exitKioskMode success'); 142 }) 143 .catch((error: BusinessError) => { 144 hilog.error(0x0000, 'testTag', '%{public}s', `exitKioskMode failed:${JSON.stringify(error)}`); 145 }); 146 }) 147 } 148 .height('100%') 149 .width('100%') 150 } 151} 152``` 153 154## KioskStatus<sup>20+</sup> 155 156type KioskStatus = _KioskStatus 157 158Kiosk状态信息,包括系统是否处于Kiosk模式以及该模式下的应用信息。 159 160**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 161 162| 类型 | 说明 | 163| --- | --- | 164| [_KioskStatus](js-apis-application-KioskStatus.md#kioskstatus) | 表示Kiosk状态信息,包括系统是否处于Kiosk模式以及该模式下的应用信息。 | 165