1# @ohos.enterprise.locationManager(位置服务管理)
2
3本模块提供设备位置服务策略管理的能力,包括设置和查询位置服务开关策略等。
4
5> **说明:**
6>
7> 本模块首批接口从API version 12开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8>
9> 本模块接口仅可在Stage模型下使用。
10>
11> 本模块接口仅对[设备管理应用](../../mdm/mdm-kit-guide.md#功能介绍)开放,需将设备管理应用激活后调用,实现相应功能。
12>
13
14## 导入模块
15
16```ts
17import { locationManager } from '@kit.MDMKit';
18```
19
20## locationManager.setLocationPolicy
21
22setLocationPolicy(admin: Want, policy: LocationPolicy): void
23
24以同步方法设置位置服务管理策略。失败抛出对应异常。
25
26**需要权限:** ohos.permission.ENTERPRISE_MANAGE_LOCATION
27
28**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
29
30
31**参数:**
32
33| 参数名   | 类型                                  | 必填   | 说明      |
34| ----- | ----------------------------------- | ---- | ------- |
35| admin | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | 是    | 设备管理应用。 |
36| policy | [LocationPolicy](#locationpolicy) | 是    | 位置服务策略。<br>- 0:默认策略。<br>- 1:禁用。<br>- 2:强制启用。 |
37
38**错误码**:
39
40以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
41
42| 错误码ID | 错误信息                                                                     |
43| ------- | ---------------------------------------------------------------------------- |
44| 9200001 | The application is not an administrator application of the device. |
45| 9200002 | The administrator application does not have permission to manage the device. |
46| 201 | Permission verification failed. The application does not have the permission required to call the API. |
47| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
48
49**示例:**
50
51```ts
52import { Want } from '@kit.AbilityKit';
53import { locationManager } from '@kit.MDMKit';
54
55let wantTemp: Want = {
56  bundleName: 'com.example.myapplication',
57  abilityName: 'EntryAbility',
58};
59
60try {
61    locationManager.setLocationPolicy(wantTemp, locationManager.LocationPolicy.DISALLOW_LOCATION_SERVICE);
62    console.info(`Succeeded in setting location patch tag.`);
63} catch(err) {
64    console.error(`Failed to get location patch tag. Code: ${err.code}, message: ${err.message}`);
65}
66```
67## locationManager.getLocationPolicy
68
69getLocationPolicy(admin: Want): LocationPolicy
70
71以同步方法查询位置服务策略。成功返回位置服务策略,失败抛出对应异常。
72
73**需要权限:** ohos.permission.ENTERPRISE_MANAGE_LOCATION
74
75**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
76
77
78**参数:**
79
80| 参数名      | 类型                                       | 必填   | 说明                       |
81| -------- | ---------------------------------------- | ---- | ------------------------------- |
82| admin    | [Want](../apis-ability-kit/js-apis-app-ability-want.md)     | 是    | 设备管理应用。                  |
83
84**返回值:**
85
86| 类型                              | 说明                                                 |
87| --------------------------------- | ---------------------------------------------------- |
88| [LocationPolicy](#locationpolicy) | 位置服务策略枚举值 0:默认策略 1:禁用 2:强制启用。 |
89
90**错误码**:
91
92以下错误码的详细介绍请参见[企业设备管理错误码](errorcode-enterpriseDeviceManager.md)和[通用错误码](../errorcode-universal.md)。
93
94| 错误码ID | 错误信息                                                                       |
95| ------- | ---------------------------------------------------------------------------- |
96| 9200001 | The application is not an administrator application of the device. |
97| 9200002 | The administrator application does not have permission to manage the device. |
98| 201 | Permission verification failed. The application does not have the permission required to call the API. |
99| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
100
101**示例:**
102
103```ts
104import { Want } from '@kit.AbilityKit';
105import { locationManager } from '@kit.MDMKit';
106let wantTemp: Want = {
107  bundleName: 'com.example.myapplication',
108  abilityName: 'EntryAbility',
109};
110
111try {
112    let result: locationManager.LocationPolicy = locationManager.getLocationPolicy(wantTemp);
113    console.info(`Succeeded in getting location policy. policy: ${result}`);
114} catch(err) {
115    console.error(`Failed to get device encryption status. Code: ${err.code}, message: ${err.message}`);
116}
117```
118
119## LocationPolicy
120
121位置服务策略值。
122
123**系统能力:** SystemCapability.Customization.EnterpriseDeviceManager
124
125
126**模型约束:** 此接口仅可在Stage模型下使用
127
128| 名称                        | 值  | 说明    |
129| ----------------------------| ----| ------------------------------- |
130| DEFAULT_LOCATION_SERVICE    | 0   | 默认策略。 |
131| DISALLOW_LOCATION_SERVICE | 1   | 禁用位置服务策略。 |
132| FORCE_OPEN_LOCATION_SERVICE | 2   | 强制开启位置服务策略。 |
133
134