1# @ohos.enterprise.locationManager (Location Service Management)
2
3The **locationManager** module provides location service management capabilities for devices, including setting and obtaining the location service policy.
4
5> **NOTE**
6>
7> The initial APIs of this module are supported since API version 12. Newly added APIs will be marked with a superscript to indicate their earliest API version.
8>
9> The APIs of this module can be used only in the stage model.
10>
11> The APIs of this module can be called only by a [device administrator application](../../mdm/mdm-kit-guide.md#introduction) that is enabled.
12>
13
14## Modules to Import
15
16```ts
17import { locationManager } from '@kit.MDMKit';
18```
19
20## locationManager.setLocationPolicy
21
22setLocationPolicy(admin: Want, policy: LocationPolicy): void
23
24Sets the location service policy. This API returns the result synchronously. If the operation fails, an exception will be thrown.
25
26**Required permissions**: ohos.permission.ENTERPRISE_MANAGE_LOCATION
27
28**System capability**: SystemCapability.Customization.EnterpriseDeviceManager
29
30
31**Parameters**
32
33| Name  | Type                                 | Mandatory  | Description     |
34| ----- | ----------------------------------- | ---- | ------- |
35| admin | [Want](../apis-ability-kit/js-apis-app-ability-want.md) | Yes   | Device administrator application.|
36| policy | [LocationPolicy](#locationpolicy) | Yes   | Location service policy to set. The value can be any of the following:<br>- **0**: The default policy is used.<br>- **1**: The location service is disabled.<br>- **2**: The location service is forcibly enabled.|
37
38**Error codes**
39
40For details about the error codes, see [Enterprise Device Management Error Codes](errorcode-enterpriseDeviceManager.md) and [Universal Error Codes](../errorcode-universal.md).
41
42| ID| Error Message                                                                    |
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**Example**
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
71Obtains the location service policy. This API returns the result synchronously. If the operation is successful, the location service policy is returned. If the operation fails, an exception will be thrown.
72
73**Required permissions**: ohos.permission.ENTERPRISE_MANAGE_LOCATION
74
75**System capability**: SystemCapability.Customization.EnterpriseDeviceManager
76
77
78**Parameters**
79
80| Name     | Type                                      | Mandatory  | Description                      |
81| -------- | ---------------------------------------- | ---- | ------------------------------- |
82| admin    | [Want](../apis-ability-kit/js-apis-app-ability-want.md)     | Yes   | Device administrator application.                 |
83
84**Return value**
85
86| Type                             | Description                                                |
87| --------------------------------- | ---------------------------------------------------- |
88| [LocationPolicy](#locationpolicy) | Location service policy obtained.|
89
90**Error codes**
91
92For details about the error codes, see [Enterprise Device Management Error Codes](errorcode-enterpriseDeviceManager.md) and [Universal Error Codes](../errorcode-universal.md).
93
94| ID| Error Message                                                                      |
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**Example**
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
121Enumerates the location service policies.
122
123**System capability**: SystemCapability.Customization.EnterpriseDeviceManager
124
125
126**Model restriction**: This API can be used only in the stage model.
127
128| Name                       | Value | Description   |
129| ----------------------------| ----| ------------------------------- |
130| DEFAULT_LOCATION_SERVICE    | 0   | Default policy.|
131| DISALLOW_LOCATION_SERVICE | 1   | The location service is disabled.|
132| FORCE_OPEN_LOCATION_SERVICE | 2   | The location service is forcibly enabled.|
133