1# EnterpriseAdminExtensionAbility开发指南 2 3## 概述 4 5企业设备管理扩展能力,是设备管理应用必备组件。当开发者为企业开发设备管理应用时,需继承EnterpriseAdminExtensionAbility,在EnterpriseAdminExtensionAbility实例中实现MDM业务逻辑,EnterpriseAdminExtensionAbility实现了系统管理状态变化通知功能,并定义了管理应用激活、去激活、应用安装、卸载事件等回调接口。 6 7### 接口说明 8 9| 类名 | 接口名称 | 描述 | 10| ------------------------------- | ----------------------------------------- | ---------------------------- | 11| EnterpriseAdminExtensionAbility | onAdminEnabled(): void | 设备管理器应用激活回调方法 | 12| EnterpriseAdminExtensionAbility | onAdminDisabled(): void | 设备管理器应用去激活回调方法 | 13| EnterpriseAdminExtensionAbility | onBundleAdded(bundleName: string): void | 应用安装回调方法 | 14| EnterpriseAdminExtensionAbility | onBundleRemoved(bundleName: string): void | 应用卸载回调方法 | 15 16onAdminEnabled:由企业管理员或者员工部署设备管理应用,激活设备管理器,系统通知设备管理应用设备管理应用已激活DeviceAdmin权限。设备管理应用可在onAdminEnabled回调函数中进行初始化策略设置。 17 18onAdminDisabled:由系统或者员工去激活设备管理器,通知去激活DeviceAdmin权限,应用可以通知企业管理员设备已脱管。 19 20onBundleAdded: 企业应用管理场景下,企业管理员订阅应用安装事件,端侧应用安装和卸载事件通知设备管理应用,设备管理应用可以在回调函数中进行事件上报,通知企业管理员。 21 22onBundleRemoved: 企业应用管理场景下,企业管理员订阅应用卸载事件,端侧应用安装和卸载事件通知设备管理应用,设备管理应用可以在回调函数中进行事件上报,通知企业管理员。 23 24## 开发步骤 25 26新建一个工程后,结构如下: 27 28 29 30首先,创建一个EnterpriseAdmin类型的ExtensionAbility(也就是EnterpriseAdminExtensionAbility)。 31 32 33 34其次,打开新建的EnterpriseAdminAbility文件,导入EnterpriseAdminExtensionAbility模块,使其继承EnterpriseAdminExtensionAbility并加上需要的应用通知回调方法,如onAdminEnabled()、onAdminDisabled()等回调方法。当设备管理员应用被激活或者去激活时,则可以在对应回调方法中接受系统发送通知。 35 36```ts 37import { EnterpriseAdminExtensionAbility } from '@kit.MDMKit'; 38 39export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility { 40 // 设备管理器应用激活回调方法,应用可在此回调函数中进行初始化策略设置。 41 onAdminEnabled() { 42 console.info("onAdminEnabled"); 43 } 44 45 // 设备管理器应用去激活回调方法,应用可在此回调函数中通知企业管理员设备已脱管。 46 onAdminDisabled() { 47 console.info("onAdminDisabled"); 48 } 49 50 // 应用安装回调方法,应用可在此回调函数中进行事件上报,通知企业管理员。 51 onBundleAdded(bundleName: string) { 52 console.info("EnterpriseAdminAbility onBundleAdded bundleName:" + bundleName); 53 } 54 55 // 应用卸载回调方法,应用可在此回调函数中进行事件上报,通知企业管理员。 56 onBundleRemoved(bundleName: string) { 57 console.info("EnterpriseAdminAbility onBundleRemoved bundleName" + bundleName); 58 } 59}; 60``` 61 62最后,在工程Module对应的[module.json5](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/module-configuration-file-0000001427744540-V2)配置文件中将EnterpriseAdminAbility注册为ExtensionAbility,type标签需要设置为“enterpriseAdmin”,srcEntry标签表示当前ExtensionAbility组件所对应的代码路径。 63 64```ts 65"extensionAbilities": [ 66 { 67 "name": "EnterpriseAdminAbility", 68 "type": "enterpriseAdmin", 69 "exported": true, 70 "srcEntry": "./ets/enterpriseadminability/EnterpriseAdminAbility.ets" 71 } 72] 73``` 74 75## 相关实例 76 77针对EnterpriseAdminExtensionAbility开发,有以下相关示例可供参考: 78 79- [企业设备管理扩展(ArkTS)](https://gitee.com/openharmony/applications_app_samples/tree/master/code/SystemFeature/ApplicationModels/EnterpriseAdminExtensionAbility)