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