1# @ohos.enterprise.EnterpriseAdminExtensionAbility(企业设备管理扩展能力) 2<!--Kit: MDM Kit--> 3<!--Subsystem: Customization--> 4<!--Owner: @huanleima--> 5<!--Designer: @liuzuming--> 6<!--Tester: @lpw_work--> 7<!--Adviser: @Brilliantry_Rui--> 8 9本模块提供[企业设备管理扩展能力](../../mdm/mdm-kit-term.md#企业设备管理扩展能力)。 10 11设备管理应用需要存在一个EnterpriseAdminExtensionAbility并重写相关接口,以此具备模块提供的各项能力,比如接收由系统发送的该应用被激活或者解除激活的通知。 12 13> **说明:** 14> 15> 本模块首批接口从API version 12 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 16> 17> 本模块接口仅可在Stage模型下使用。 18> 19 20## 导入模块 21 22```ts 23import { EnterpriseAdminExtensionAbility } from '@kit.MDMKit'; 24``` 25 26## EnterpriseAdminExtensionAbility.onAdminEnabled 27 28onAdminEnabled(): void 29 30设备管理应用被激活事件回调。企业管理员或者员工部署设备管理应用,激活设备管理,系统通知设备管理应用已激活admin权限。设备管理应用可在此回调函数中进行初始化策略设置。 31 32**系统能力**:SystemCapability.Customization.EnterpriseDeviceManager 33 34**模型约束:** 此接口仅可在Stage模型下使用。 35 36 37**示例:** 38 39```ts 40import { EnterpriseAdminExtensionAbility } from '@kit.MDMKit'; 41 42export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility { 43 onAdminEnabled() { 44 } 45}; 46``` 47 48## EnterpriseAdminExtensionAbility.onAdminDisabled 49 50onAdminDisabled(): void 51 52设备管理应用被解除激活事件回调。企业管理员或者员工解除激活设备管理,系统通知设备管理应用已解除激活admin权限。设备管理应用可在此回调函数中通知企业管理员设备已脱管。 53 54**系统能力**:SystemCapability.Customization.EnterpriseDeviceManager 55 56**模型约束:** 此接口仅可在Stage模型下使用。 57 58 59**示例:** 60 61```ts 62import { EnterpriseAdminExtensionAbility } from '@kit.MDMKit'; 63 64export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility { 65 onAdminDisabled() { 66 } 67}; 68``` 69 70## EnterpriseAdminExtensionAbility.onBundleAdded 71 72onBundleAdded(bundleName: string): void 73 74应用安装事件回调,回调中包含应用包名。通过接口[adminManager.subscribeManagedEventSync](js-apis-enterprise-adminManager.md#adminmanagersubscribemanagedeventsync)注册MANAGED_EVENT_BUNDLE_ADDED事件才能收到此回调。企业设备管理场景下,设备管理应用订阅应用安装事件,端侧应用安装事件通知设备管理应用,设备管理应用可以在此回调函数中进行事件上报,通知企业管理员。 75 76**系统能力**:SystemCapability.Customization.EnterpriseDeviceManager 77 78**模型约束:** 此接口仅可在Stage模型下使用。 79 80 81**参数:** 82 83| 参数名 | 类型 | 必填 | 说明 | 84| ----- | ----------------------------------- | ---- | ------- | 85| bundleName | string | 是 | 被安装应用的包名。 | 86 87**示例:** 88 89```ts 90import { EnterpriseAdminExtensionAbility } from '@kit.MDMKit'; 91 92export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility { 93 onBundleAdded(bundleName: string) { 94 console.info(`Succeeded in calling onBundleAdded callback, added bundle name : ${bundleName}`); 95 } 96}; 97``` 98 99## EnterpriseAdminExtensionAbility.onBundleAdded<sup>14+</sup> 100 101onBundleAdded(bundleName: string, accountId: number): void 102 103应用安装事件回调,回调中包含应用包名和账号ID。通过接口[adminManager.subscribeManagedEventSync](js-apis-enterprise-adminManager.md#adminmanagersubscribemanagedeventsync)注册MANAGED_EVENT_BUNDLE_ADDED事件才能收到此回调。企业设备管理场景下,设备管理应用订阅应用安装事件,端侧应用安装事件通知设备管理应用,设备管理应用可以在此回调函数中进行事件上报,通知企业管理员。 104 105**系统能力**:SystemCapability.Customization.EnterpriseDeviceManager 106 107**模型约束:** 此接口仅可在Stage模型下使用。 108 109 110**参数:** 111 112| 参数名 | 类型 | 必填 | 说明 | 113| ----- | ----------------------------------- | ---- | ------- | 114| bundleName | string | 是 | 被安装应用的包名。 | 115| accountId | number | 是 | 被安装应用所在的用户ID。 | 116 117**示例:** 118 119```ts 120import { EnterpriseAdminExtensionAbility } from '@kit.MDMKit'; 121 122export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility { 123 // 由于存在同名回调方法onBundleAdded(bundleName: string),该回调方法无accountId参数,因此在实际调用时accountId必须为可选参数,写法请参考示例代码。如果删除accountId后的问号"?",编译会报错。 124 onBundleAdded(bundleName: string, accountId?: number) { 125 console.info(`Succeeded in calling onBundleAdded callback, added bundle name : ${bundleName}, accountId: ${accountId}`); 126 } 127}; 128``` 129 130## EnterpriseAdminExtensionAbility.onBundleRemoved 131 132onBundleRemoved(bundleName: string): void 133 134应用卸载事件回调,回调中包含应用包名。通过接口[adminManager.subscribeManagedEventSync](js-apis-enterprise-adminManager.md#adminmanagersubscribemanagedeventsync)注册MANAGED_EVENT_BUNDLE_REMOVED事件才能收到此回调。企业设备管理场景下,设备管理应用订阅应用卸载事件,端侧应用卸载事件通知设备管理应用,设备管理应用可以在此回调函数中进行事件上报,通知企业管理员。 135 136**系统能力**:SystemCapability.Customization.EnterpriseDeviceManager 137 138**模型约束:** 此接口仅可在Stage模型下使用。 139 140 141**参数:** 142 143| 参数名 | 类型 | 必填 | 说明 | 144| ----- | ----------------------------------- | ---- | ------- | 145| bundleName | string | 是 | 被卸载应用的包名。 | 146 147**示例:** 148 149```ts 150import { EnterpriseAdminExtensionAbility } from '@kit.MDMKit'; 151 152export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility { 153 onBundleRemoved(bundleName: string) { 154 console.info(`Succeeded in calling onBundleRemoved callback, removed bundle name : ${bundleName}`); 155 } 156}; 157``` 158 159## EnterpriseAdminExtensionAbility.onBundleRemoved<sup>14+</sup> 160 161onBundleRemoved(bundleName: string, accountId: number): void 162 163应用卸载事件回调,回调中包含应用包名和账号ID。通过接口[adminManager.subscribeManagedEventSync](js-apis-enterprise-adminManager.md#adminmanagersubscribemanagedeventsync)注册MANAGED_EVENT_BUNDLE_REMOVED事件才能收到此回调。企业设备管理场景下,设备管理应用订阅应用卸载事件,端侧应用卸载事件通知设备管理应用,设备管理应用可以在此回调函数中进行事件上报,通知企业管理员。 164 165**系统能力**:SystemCapability.Customization.EnterpriseDeviceManager 166 167**模型约束:** 此接口仅可在Stage模型下使用。 168 169 170**参数:** 171 172| 参数名 | 类型 | 必填 | 说明 | 173| ----- | ----------------------------------- | ---- | ------- | 174| bundleName | string | 是 | 被卸载应用的包名。 | 175| accountId | number | 是 | 被卸载应用所在的用户ID。 | 176 177**示例:** 178 179```ts 180import { EnterpriseAdminExtensionAbility } from '@kit.MDMKit'; 181 182export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility { 183 // 由于存在同名回调方法onBundleRemoved(bundleName: string),该回调方法无accountId参数,因此在实际调用时accountId必须为可选参数,写法请参考示例代码。如果删除accountId后的问号"?",编译会报错。 184 onBundleRemoved(bundleName: string, accountId?: number) { 185 console.info(`Succeeded in calling onBundleRemoved callback, removed bundle name : ${bundleName}, accountId: ${accountId}`); 186 } 187}; 188``` 189 190## EnterpriseAdminExtensionAbility.onAppStart 191 192onAppStart(bundleName: string): void 193 194应用启动事件回调。通过接口[adminManager.subscribeManagedEventSync](js-apis-enterprise-adminManager.md#adminmanagersubscribemanagedeventsync)注册MANAGED_EVENT_APP_START事件才能收到此回调。企业设备管理场景下,设备管理应用订阅应用启动事件,端侧应用启动事件通知设备管理应用,设备管理应用可以在此回调函数中进行事件上报,通知企业管理员。 195 196**系统能力**:SystemCapability.Customization.EnterpriseDeviceManager 197 198**模型约束:** 此接口仅可在Stage模型下使用。 199 200 201**参数:** 202 203| 参数名 | 类型 | 必填 | 说明 | 204| ----- | ----------------------------------- | ---- | ------- | 205| bundleName | string | 是 | 启动应用的包名。 | 206 207**示例:** 208 209```ts 210import { EnterpriseAdminExtensionAbility } from '@kit.MDMKit'; 211 212export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility { 213 onAppStart(bundleName: string) { 214 console.info(`Succeeded in calling onAppStart callback, started bundle name : ${bundleName}`); 215 } 216}; 217``` 218 219## EnterpriseAdminExtensionAbility.onAppStop 220 221onAppStop(bundleName: string): void 222 223应用停止事件回调。通过接口[adminManager.subscribeManagedEventSync](js-apis-enterprise-adminManager.md#adminmanagersubscribemanagedeventsync)注册MANAGED_EVENT_APP_STOP事件才能收到此回调。企业设备管理场景下,设备管理应用订阅应用停止事件,端侧应用停止事件通知设备管理应用,设备管理应用可以在此回调函数中进行事件上报,通知企业管理员。 224 225**系统能力**:SystemCapability.Customization.EnterpriseDeviceManager 226 227**模型约束:** 此接口仅可在Stage模型下使用。 228 229 230**参数:** 231 232| 参数名 | 类型 | 必填 | 说明 | 233| ----- | ----------------------------------- | ---- | ------- | 234| bundleName | string | 是 | 停止应用的包名。 | 235 236**示例:** 237 238```ts 239import { EnterpriseAdminExtensionAbility } from '@kit.MDMKit'; 240 241export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility { 242 onAppStop(bundleName: string) { 243 console.info(`Succeeded in calling onAppStop callback, stopped bundle name : ${bundleName}`); 244 } 245}; 246``` 247## EnterpriseAdminExtensionAbility.onSystemUpdate 248 249onSystemUpdate(systemUpdateInfo: systemManager.SystemUpdateInfo): void 250 251系统更新事件回调。通过接口[adminManager.subscribeManagedEventSync](js-apis-enterprise-adminManager.md#adminmanagersubscribemanagedeventsync)注册MANAGED_EVENT_SYSTEM_UPDATE事件才能收到此回调。企业设备管理场景下,设备管理应用订阅系统更新事件,端侧系统更新事件通知设备管理应用,设备管理应用可以在此回调函数中进行事件上报,通知企业管理员。 252 253**系统能力**:SystemCapability.Customization.EnterpriseDeviceManager 254 255**模型约束:** 此接口仅可在Stage模型下使用。 256 257 258**参数:** 259 260| 参数名 | 类型 | 必填 | 说明 | 261| ---------------- | ------------------------------------------------------------ | ---- | -------------------- | 262| systemUpdateInfo | [systemManager.SystemUpdateInfo](js-apis-enterprise-systemManager.md#systemupdateinfo) | 是 | 系统更新的版本信息。 | 263 264**示例:** 265 266```ts 267import { EnterpriseAdminExtensionAbility } from '@kit.MDMKit'; 268import { systemManager } from '@kit.MDMKit'; 269 270export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility { 271 onSystemUpdate(systemUpdateInfo: systemManager.SystemUpdateInfo) { 272 console.info(`Succeeded in calling onSystemUpdate callback, version name : ${systemUpdateInfo.versionName}`); 273 } 274}; 275``` 276 277## EnterpriseAdminExtensionAbility.onStart 278 279onStart(): void 280 281EnterpriseAdminExtensionAbility启动事件回调。 282 283**系统能力**:SystemCapability.Customization.EnterpriseDeviceManager 284 285**模型约束:** 此接口仅可在Stage模型下使用。 286 287 288**示例:** 289 290```ts 291import { EnterpriseAdminExtensionAbility } from '@kit.MDMKit'; 292 293export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility { 294 onStart() { 295 console.info(`Succeeded in calling onStart callback.`); 296 } 297}; 298``` 299 300## EnterpriseAdminExtensionAbility.onAccountAdded<sup>18+</sup> 301 302onAccountAdded(accountId: number): void 303 304系统账号新增事件回调。通过接口[adminManager.subscribeManagedEventSync](js-apis-enterprise-adminManager.md#adminmanagersubscribemanagedeventsync)注册MANAGED_EVENT_ACCOUNT_ADDED事件才能收到此回调。企业设备管理场景下,设备管理应用订阅系统账号新增事件,系统账号新增事件通知设备管理应用,设备管理应用可以在此回调函数中进行事件上报,通知企业管理员。 305 306**系统能力**:SystemCapability.Customization.EnterpriseDeviceManager 307 308**模型约束:** 此接口仅可在Stage模型下使用。 309 310**参数:** 311 312| 参数名 | 类型 | 必填 | 说明 | 313| ----- | ----------------------------------- | ---- | ------- | 314| accountId | number | 是 | 新增的用户ID。 | 315 316**示例:** 317 318```ts 319import { EnterpriseAdminExtensionAbility } from '@kit.MDMKit'; 320 321export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility { 322 onAccountAdded(accountId: number) { 323 console.info(`Succeeded in calling onAccountAdded callback, added accountId: ${accountId}`); 324 } 325}; 326``` 327 328## EnterpriseAdminExtensionAbility.onAccountSwitched<sup>18+</sup> 329 330onAccountSwitched(accountId: number): void 331 332系统账号切换事件回调。通过接口[adminManager.subscribeManagedEventSync](js-apis-enterprise-adminManager.md#adminmanagersubscribemanagedeventsync)注册MANAGED_EVENT_ACCOUNT_SWITCHED事件才能收到此回调。企业设备管理场景下,设备管理应用订阅系统账号切换事件,系统账号切换事件通知设备管理应用,设备管理应用可以在此回调函数中进行事件上报,通知企业管理员。 333 334**系统能力**:SystemCapability.Customization.EnterpriseDeviceManager 335 336**模型约束:** 此接口仅可在Stage模型下使用。 337 338**参数:** 339 340| 参数名 | 类型 | 必填 | 说明 | 341| ----- | ----------------------------------- | ---- | ------- | 342| accountId | number | 是 | 切换后的用户ID。 | 343 344**示例:** 345 346```ts 347import { EnterpriseAdminExtensionAbility } from '@kit.MDMKit'; 348 349export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility { 350 onAccountSwitched(accountId: number) { 351 console.info(`Succeeded in calling onAccountSwitched callback, switched accountId: ${accountId}`); 352 } 353}; 354``` 355 356## EnterpriseAdminExtensionAbility.onAccountRemoved<sup>18+</sup> 357 358onAccountRemoved(accountId: number): void 359 360系统账号删除事件回调。通过接口[adminManager.subscribeManagedEventSync](js-apis-enterprise-adminManager.md#adminmanagersubscribemanagedeventsync)注册MANAGED_EVENT_ACCOUNT_REMOVED事件才能收到此回调。企业设备管理场景下,设备管理应用订阅系统账号删除事件,系统账号删除事件通知设备管理应用,设备管理应用可以在此回调函数中进行事件上报,通知企业管理员。 361 362**系统能力**:SystemCapability.Customization.EnterpriseDeviceManager 363 364**模型约束:** 此接口仅可在Stage模型下使用。 365 366**参数:** 367 368| 参数名 | 类型 | 必填 | 说明 | 369| ----- | ----------------------------------- | ---- | ------- | 370| accountId | number | 是 | 被删除的用户ID。 | 371 372**示例:** 373 374```ts 375import { EnterpriseAdminExtensionAbility } from '@kit.MDMKit'; 376 377export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility { 378 onAccountRemoved(accountId: number) { 379 console.info(`Succeeded in calling onAccountRemoved callback, removed accountId: ${accountId}`); 380 } 381}; 382``` 383 384## EnterpriseAdminExtensionAbility.onKioskModeEntering<sup>20+</sup> 385 386onKioskModeEntering(bundleName: string, accountId: number): void 387 388应用进入Kiosk模式回调,回调中包含应用包名和用户ID。 389 390Kiosk模式为系统层面提供的一种应用运行模式,该模式下会将设备锁定在单个应用或者一组应用运行,同时对锁屏状态、状态栏、手势操作和关键功能进行控制,防止用户在设备上启动其它应用或执行其它操作。 391 392**系统能力**:SystemCapability.Customization.EnterpriseDeviceManager 393 394**模型约束:** 此接口仅可在Stage模型下使用。 395 396**参数:** 397 398| 参数名 | 类型 | 必填 | 说明 | 399| ----- | ----------------------------------- | ---- | ------- | 400| bundleName | string | 是 | 进入Kiosk模式应用的包名。 | 401| accountId | number | 是 | 进入Kiosk模式应用所在的用户ID。 | 402 403**示例:** 404 405```ts 406import { EnterpriseAdminExtensionAbility } from '@kit.MDMKit'; 407 408export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility { 409 onKioskModeEntering(bundleName: string, accountId: number): void { 410 console.info(`Succeeded in calling onKioskModeEntering callback, bundleName:${bundleName}, accountId:${accountId}`); 411 } 412}; 413``` 414 415## EnterpriseAdminExtensionAbility.onKioskModeExiting<sup>20+</sup> 416 417onKioskModeExiting(bundleName: string, accountId: number): void 418 419应用退出Kiosk模式回调,回调中包含应用包名和用户ID。 420 421**系统能力**:SystemCapability.Customization.EnterpriseDeviceManager 422 423**模型约束:** 此接口仅可在Stage模型下使用。 424 425**参数:** 426 427| 参数名 | 类型 | 必填 | 说明 | 428| ----- | ----------------------------------- | ---- | ------- | 429| bundleName | string | 是 | 退出Kiosk模式应用的包名。 | 430| accountId | number | 是 | 退出Kiosk模式应用所在的用户ID。 | 431 432**示例:** 433 434```ts 435import { EnterpriseAdminExtensionAbility } from '@kit.MDMKit'; 436 437export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility { 438 onKioskModeExiting(bundleName: string, accountId: number): void { 439 console.info(`Succeeded in calling onKioskModeExiting callback, bundleName:${bundleName}, accountId:${accountId}`); 440 } 441}; 442```