1# MDM Kit开发指南
2
3## 功能介绍
4
5设备管理应用可以提供企业设备管理与事件监听、应用管理、禁用管理、安全管理、设备设置、设备控制、设备信息获取、硬件外设管理、系统管理、网络通信管理等功能。具体功能内容可参考接口说明。
6
7设备管理应用:具备[企业设备管理扩展能力](./mdm-kit-admin.md)的应用。
8
9## 开发步骤
10
11要完成一个设备管理应用开发,需要完成以下步骤:
12
13<!--RP1-->
14
151. 创建EnterpriseAdminExtensionAbility;
16
172. 声明接口所需权限;
18
193. MDM功能开发与调试;
20
21<!--RP1End-->
22
23
24<!--RP2--><!--RP2End-->
25
26### 创建EnterpriseAdminExtensionAbility
27
28请参阅[EnterpriseAdminExtensionAbility开发指南](./mdm-kit-admin.md)完成EnterpriseAdminExtensionAbility的创建。
29
30### 声明接口所需权限
31
32在申请权限前,请保证符合[权限使用的基本原则](../security/AccessToken/app-permission-mgmt-overview.md#权限使用的基本原则)。然后在工程Module对应的[module.json5](../quick-start/module-configuration-file.md)配置文件中"requestPermissions"标签下声明要使用的接口所需的权限。例如:
33
34```ts
35"requestPermissions": [
36  {
37    "name": "ohos.permission.MANAGE_ENTERPRISE_DEVICE_ADMIN"
38  },
39]
40```
41
42> **说明**
43>
44> 所需要申请的权限请参考具体接口,这里提供了[企业设备管理](../reference/apis-mdm-kit/js-apis-enterprise-adminManager.md)的链接,可基于该文档查看MDM Kit内其他API文档。
45>
46> <!--RP4--><!--RP4End-->
47
48### MDM功能开发
49
501. 导包。MDM Kit目前包含应用管理、通信管理、安全管理、限制策略、系统内管理、设备设置和查询、设备控制等多种类型的API。请根据业务需求。以下为导入adminManager和restrictions的示例。
51
52   ```ts
53   import { adminManager, restrictions } from '@kit.MDMKit';
54   ```
55
562. 调用接口,实现相应的功能。以下为禁用设备Wi-Fi的示例。
57
58   ```ts
59   import { Want } from '@kit.AbilityKit';
60   let wantTemp: Want = {
61     bundleName: 'com.example.xxx',
62     abilityName: 'EnterpriseAdminAbility',
63   };
64   try {
65     restrictions.setDisallowedPolicy(wantTemp, "wifi", true);
66     console.info("disable wifi success.");
67   } catch (error) {
68     console.info("disable wifi fail.");
69   }
70   ```
71
72### 调试说明
73
74由于MDM接口需要在激活企业设备管理扩展能力后使用,调试时需通过hdc命令来激活/解除激活扩展能力,命令如下:
75
76```bash
77# 激活
78hdc shell edm enable-admin -n 包名 -a 企业设备管理扩展能力类名
79# 解除激活
80hdc shell edm disable-admin -n 包名
81```
82
83> **说明**
84>
85> 正式使用时,在同一设备上只能能激活一个超级设备管理应用。
86>
87> <!--RP5--><!--RP5End-->
88
89<!--RP6--><!--RP6End-->