js-apis-geoLocationManager.md 86.1 KB
Newer Older
1
# @ohos.geoLocationManager (位置服务)
L
liu-binjun 已提交
2 3 4

位置服务提供GNSS定位、网络定位、地理编码、逆地理编码、国家码和地理围栏等基本功能。

5 6
> **说明:**
>
L
liu-binjun 已提交
7 8
> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
## 申请权限

应用在使用系统能力前,需要检查是否已经获取用户授权访问设备位置信息。如未获得授权,可以向用户申请需要的位置权限,申请方式请参考下文。

系统提供的定位权限有:
- ohos.permission.LOCATION

- ohos.permission.APPROXIMATELY_LOCATION

- ohos.permission.LOCATION_IN_BACKGROUND

访问设备的位置信息,必须申请权限,并且获得用户授权。

API9之前的版本,申请ohos.permission.LOCATION即可。

API9及之后的版本,需要申请ohos.permission.APPROXIMATELY_LOCATION或者同时申请ohos.permission.APPROXIMATELY_LOCATION和ohos.permission.LOCATION;无法单独申请ohos.permission.LOCATION。

| 使用的API版本 | 申请位置权限 | 申请结果 | 位置的精确度 |
| -------- | -------- | -------- | -------- |
| 小于9 | ohos.permission.LOCATION | 成功 | 获取到精准位置,精准度在米级别。 |
| 大于等于9 | ohos.permission.LOCATION | 失败 | 无法获取位置。 |
| 大于等于9 | ohos.permission.APPROXIMATELY_LOCATION | 成功 | 获取到模糊位置,精确度为5公里。 |
| 大于等于9 | ohos.permission.APPROXIMATELY_LOCATION和ohos.permission.LOCATION | 成功 | 获取到精准位置,精准度在米级别。 |

如果应用在后台运行时也需要访问设备位置,除需要将应用声明为允许后台运行外,还必须申请ohos.permission.LOCATION_IN_BACKGROUND权限,这样应用在切入后台之后,系统可以继续上报位置信息。

开发者可以在应用配置文件中声明所需要的权限,具体可参考[授权申请指导](../../security/accesstoken-guidelines.md)

L
liu-binjun 已提交
37 38 39 40 41 42 43 44

## 导入模块

```ts
import geoLocationManager from '@ohos.geoLocationManager';
```


L
liu-binjun 已提交
45
## ReverseGeoCodeRequest
L
liu-binjun 已提交
46

L
liu-binjun 已提交
47
逆地理编码请求接口。
L
liu-binjun 已提交
48

L
liu-binjun 已提交
49
**系统能力**:SystemCapability.Location.Location.Geocoder
L
liu-binjun 已提交
50

L
liu-binjun 已提交
51 52 53
| 名称 | 类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| locale | string | 是 | 是 | 指定位置描述信息的语言,“zh”代表中文,“en”代表英文。 |
54 55 56
| latitude | number | 是 | 是 | 表示纬度信息,正值表示北纬,负值表示南纬。取值范围为-90到90。 |
| longitude | number | 是 | 是 | 表示经度信息,正值表示东经,负值表示西经。取值范围为-180到180。 |
| maxItems | number | 是 | 是 | 指定返回位置信息的最大个数。取值范围为大于等于0,推荐该值小于10。 |
L
liu-binjun 已提交
57

58

L
liu-binjun 已提交
59
## GeoCodeRequest
L
liu-binjun 已提交
60

L
liu-binjun 已提交
61
地理编码请求接口。
L
liu-binjun 已提交
62

L
liu-binjun 已提交
63
**系统能力**:SystemCapability.Location.Location.Geocoder
L
liu-binjun 已提交
64

L
liu-binjun 已提交
65 66 67 68
| 名称 | 类型 | 可读|可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| locale | string | 是 | 是 | 表示位置描述信息的语言,“zh”代表中文,“en”代表英文。 |
| description | string | 是 | 是 | 表示位置信息描述,如“上海市浦东新区xx路xx号”。 |
69 70 71 72 73
| maxItems | number | 是 | 是 | 表示返回位置信息的最大个数。取值范围为大于等于0,推荐该值小于10。 |
| minLatitude | number | 是 | 是 | 表示最小纬度信息,与下面三个参数一起,表示一个经纬度范围。取值范围为-90到90。 |
| minLongitude | number | 是 | 是 | 表示最小经度信息。取值范围为-180到180。 |
| maxLatitude | number | 是 | 是 | 表示最大纬度信息。取值范围为-90到90。 |
| maxLongitude | number | 是 | 是 | 表示最大经度信息。取值范围为-180到180。 |
L
liu-binjun 已提交
74 75


L
liu-binjun 已提交
76
## GeoAddress
L
liu-binjun 已提交
77

L
liu-binjun 已提交
78
地理编码类型。
L
liu-binjun 已提交
79

L
liu-binjun 已提交
80
**系统能力**:SystemCapability.Location.Location.Geocoder
L
liu-binjun 已提交
81

L
liu-binjun 已提交
82 83
| 名称 | 类型 | 可读|可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
84 85
| latitude | number | 是 | 否  | 表示纬度信息,正值表示北纬,负值表示南纬。取值范围为-90到90。 |
| longitude | number | 是 | 否  | 表示经度信息,正值表示东经,负值表是西经。取值范围为-180到180。 |
L
liu-binjun 已提交
86 87 88 89 90
| locale | string | 是 | 否  | 表示位置描述信息的语言,“zh”代表中文,“en”代表英文。 |
| placeName | string | 是 | 否  | 表示地区信息。 |
| countryCode | string | 是 | 否  | 表示国家码信息。 |
| countryName | string| 是 | 否 | 表示国家信息。 |
| administrativeArea | string | 是 | 否 | 表示省份区域信息。 |
Z
fix doc  
z30025928 已提交
91
| subAdministrativeArea | string | 是 | 否 | 表示子区域信息。 |
L
liu-binjun 已提交
92 93 94 95 96 97 98 99 100
| locality | string | 是 | 否 | 表示城市信息。 |
| subLocality | string | 是 | 否 | 表示子城市信息。 |
| roadName | string | 是 | 否 |表示路名信息。 |
| subRoadName | string | 是 | 否 | 表示子路名信息。 |
| premises | string| 是 | 否|表示门牌号信息。 |
| postalCode | string | 是 | 否 | 表示邮政编码信息。 |
| phoneNumber | string | 是 | 否 | 表示联系方式信息。 |
| addressUrl | string | 是 | 否 | 表示位置信息附件的网址信息。 |
| descriptions | Array<string> | 是 | 否 | 表示附加的描述信息。 |
101 102
| descriptionsSize | number | 是 | 否 | 表示附加的描述信息数量。取值范围为大于等于0,推荐该值小于10。 |
| isFromMock | Boolean | 是 | 否 | 表示地名信息是否来自于逆地理编码模拟功能。<br>**系统API**:此接口为系统接口。 |
L
liu-binjun 已提交
103 104


L
liu-binjun 已提交
105
## LocationRequest
L
liu-binjun 已提交
106

L
liu-binjun 已提交
107
位置信息请求类型。
L
liu-binjun 已提交
108 109 110

**系统能力**:SystemCapability.Location.Location.Core

L
liu-binjun 已提交
111 112
| 名称 | 类型 | 可读|可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
R
ruan-shaofei 已提交
113 114 115 116 117
| priority | [LocationRequestPriority](#locationrequestpriority) | 是 | 是 | 表示优先级信息。当scenario取值为UNSET时,priority参数生效,否则priority参数不生效;当scenario和priority均取值为UNSET时,无法发起定位请求。取值范围见[LocationRequestPriority](#locationrequestpriority)的定义。 |
| scenario | [LocationRequestScenario](#locationrequestscenario) | 是 | 是 | 表示场景信息。当scenario取值为UNSET时,priority参数生效,否则priority参数不生效;当scenario和priority均取值为UNSET时,无法发起定位请求。取值范围见[LocationRequestScenario](#locationrequestscenario)的定义。 |
| timeInterval | number | 是 | 是 | 表示上报位置信息的时间间隔,单位是秒。默认值为1,取值范围为大于等于0。 |
| distanceInterval | number | 是 | 是 | 表示上报位置信息的距离间隔。单位是米,默认值为0,取值范围为大于等于0。 |
| maxAccuracy | number | 是 | 是 | 表示精度信息,单位是米。仅在精确位置功能场景下有效,模糊位置功能生效场景下该字段无意义。默认值为0,取值范围为大于等于0。 |
L
liu-binjun 已提交
118 119


L
liu-binjun 已提交
120
## CurrentLocationRequest
L
liu-binjun 已提交
121

L
liu-binjun 已提交
122
当前位置信息请求类型。
L
liu-binjun 已提交
123 124 125

**系统能力**:SystemCapability.Location.Location.Core

L
liu-binjun 已提交
126 127
| 名称 | 类型 | 可读|可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
128 129 130 131
| priority | [LocationRequestPriority](#locationrequestpriority) | 是 | 是 | 表示优先级信息。取值范围见[LocationRequestPriority](#locationrequestpriority)的定义。 |
| scenario | [LocationRequestScenario](#locationrequestscenario) | 是 | 是 | 表示场景信息。取值范围见[LocationRequestScenario](#locationrequestscenario)的定义。 |
| maxAccuracy | number | 是 | 是| 表示精度信息,单位是米。仅在精确位置功能场景下有效,模糊位置功能生效场景下该字段无意义。取值范围为大于0。 |
| timeoutMs | number | 是 | 是 | 表示超时时间,单位是毫秒,最小为1000毫秒。取值范围为大于等于1000。 |
L
liu-binjun 已提交
132 133


L
liu-binjun 已提交
134
## SatelliteStatusInfo
L
liu-binjun 已提交
135

L
liu-binjun 已提交
136
卫星状态信息。
L
liu-binjun 已提交
137

L
liu-binjun 已提交
138
**系统能力**:SystemCapability.Location.Location.Gnss
L
liu-binjun 已提交
139

L
liu-binjun 已提交
140 141
| 名称 | 类型 | 可读|可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
142 143 144 145 146 147
| satellitesNumber | number | 是 | 否 | 表示卫星个数。取值范围为大于等于0。 |
| satelliteIds | Array&lt;number&gt; | 是 | 否 | 表示每个卫星的ID,数组类型。取值范围为大于等于0。 |
| carrierToNoiseDensitys | Array&lt;number&gt; | 是 | 否 | 表示载波噪声功率谱密度比,即cn0。取值范围为大于0。 |
| altitudes | Array&lt;number&gt; | 是 | 否 | 表示卫星高度角信息。单位是“度”,取值范围为-90到90。 |
| azimuths | Array&lt;number&gt; | 是 | 否 | 表示方位角。单位是“度”,取值范围为0到360。 |
| carrierFrequencies | Array&lt;number&gt; | 是 | 否 | 表示载波频率。单位是Hz,取值范围为大于等于0。 |
L
liu-binjun 已提交
148 149


L
liu-binjun 已提交
150
## CachedGnssLocationsRequest
L
liu-binjun 已提交
151

L
liu-binjun 已提交
152
请求订阅GNSS缓存位置上报功能接口的配置参数。
L
liu-binjun 已提交
153

154
**系统能力**:SystemCapability.Location.Location.Gnss
L
liu-binjun 已提交
155

L
liu-binjun 已提交
156 157
| 名称 | 类型 | 可读|可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
158
| reportingPeriodSec | number | 是 | 是 | 表示GNSS缓存位置上报的周期,单位是毫秒。取值范围为大于0。 |
L
liu-binjun 已提交
159
| wakeUpCacheQueueFull | boolean | 是 | 是  | true表示GNSS芯片底层缓存队列满之后会主动唤醒AP芯片,并把缓存位置上报给应用。<br/>false表示GNSS芯片底层缓存队列满之后不会主动唤醒AP芯片,会把缓存位置直接丢弃。 |
L
liu-binjun 已提交
160 161


L
liu-binjun 已提交
162
## Geofence
L
liu-binjun 已提交
163

L
liu-binjun 已提交
164
GNSS围栏的配置参数。目前只支持圆形围栏。
L
liu-binjun 已提交
165

L
liu-binjun 已提交
166
**系统能力**:SystemCapability.Location.Location.Geofence
L
liu-binjun 已提交
167

L
liu-binjun 已提交
168 169
| 名称 | 类型 | 可读|可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
170 171 172 173
| latitude | number | 是 | 是 |表示纬度。取值范围为-90到90。 |
| longitude | number | 是 |是 | 表示经度。取值范围为-180到180。 |
| radius | number | 是 |是 | 表示圆形围栏的半径。单位是米,取值范围为大于0。 |
| expiration | number | 是 |是 | 围栏存活的时间,单位是毫秒。取值范围为大于0。 |
L
liu-binjun 已提交
174 175


L
liu-binjun 已提交
176
## GeofenceRequest
L
liu-binjun 已提交
177

L
liu-binjun 已提交
178
请求添加GNSS围栏消息中携带的参数,包括定位优先级、定位场景和围栏信息。
L
liu-binjun 已提交
179

L
liu-binjun 已提交
180
**系统能力**:SystemCapability.Location.Location.Geofence
181

L
liu-binjun 已提交
182 183 184 185
| 名称 | 类型 | 可读|可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| scenario | [LocationRequestScenario](#locationrequestscenario) | 是 | 是  |  表示定位场景。 |
| geofence |  [Geofence](#geofence)| 是 | 是  |  表示围栏信息。 |
186

L
liu-binjun 已提交
187

L
liu-binjun 已提交
188
## LocationCommand
L
liu-binjun 已提交
189

L
liu-binjun 已提交
190
扩展命令结构体。
L
liu-binjun 已提交
191

L
liu-binjun 已提交
192
**系统能力**:SystemCapability.Location.Location.Core
L
liu-binjun 已提交
193

L
liu-binjun 已提交
194 195 196 197
| 名称 | 类型 | 可读|可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| scenario | [LocationRequestScenario](#locationrequestscenario)  | 是 | 是  | 表示定位场景。 |
| command | string | 是 | 是  | 扩展命令字符串。 |
L
liu-binjun 已提交
198 199


L
liu-binjun 已提交
200
## Location
201

L
liu-binjun 已提交
202
位置信息类型。
203

L
liu-binjun 已提交
204
**系统能力**:SystemCapability.Location.Location.Core
205

L
liu-binjun 已提交
206 207
| 名称 | 类型 | 可读|可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
208 209
| latitude | number| 是 | 否 | 表示纬度信息,正值表示北纬,负值表示南纬。取值范围为-90到90。 |
| longitude | number| 是 | 否 | 表示经度信息,正值表示东经,负值表是西经。取值范围为-180到180。 |
L
liu-binjun 已提交
210 211 212 213
| altitude | number | 是 | 否 | 表示高度信息,单位米。 |
| accuracy | number | 是 | 否 | 表示精度信息,单位米。 |
| speed | number | 是 | 否 |表示速度信息,单位米每秒。 |
| timeStamp | number | 是 | 否 | 表示位置时间戳,UTC格式。 |
214
| direction | number | 是 | 否 | 表示航向信息。单位是“度”,取值范围为0到360。 |
L
liu-binjun 已提交
215 216
| timeSinceBoot | number | 是 | 否 | 表示位置时间戳,开机时间格式。 |
| additions | Array&lt;string&gt; | 是 | 否 | 附加信息。 |
217 218
| additionSize | number | 是 | 否 | 附加信息数量。取值范围为大于等于0。  |
| isFromMock | Boolean | 是 | 否 | 表示位置信息是否来自于位置模拟功能。<br>**系统API**:此接口为系统接口。 |
219

220

L
liu-binjun 已提交
221
## ReverseGeocodingMockInfo
222

L
liu-binjun 已提交
223
逆地理编码模拟功能的配置信息,包含一个位置信息和一个地名信息。
224

L
liu-binjun 已提交
225
**系统能力**:SystemCapability.Location.Location.Core
226

L
liu-binjun 已提交
227
**系统API**:此接口为系统接口。
228

L
liu-binjun 已提交
229 230 231 232
| 名称 | 类型 | 可读|可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| location |  [ReverseGeoCodeRequest](#reversegeocoderequest) | 是 | 是 | 表示经纬度信息。 |
| geoAddress |  [GeoAddress](#geoaddress) | 是 | 是 |表示地名信息。 |
L
liu-binjun 已提交
233

234

L
liu-binjun 已提交
235
## LocationMockConfig
L
liu-binjun 已提交
236

L
liu-binjun 已提交
237
位置模拟功能的配置参数,包含了模拟位置上报的时间间隔和模拟位置数组。
L
liu-binjun 已提交
238

L
liu-binjun 已提交
239
**系统能力**:SystemCapability.Location.Location.Core
L
liu-binjun 已提交
240

L
liu-binjun 已提交
241
**系统API**:此接口为系统接口。
L
liu-binjun 已提交
242

L
liu-binjun 已提交
243 244 245
| 名称 | 类型 | 可读|可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| timeInterval | number | 是 | 是 | 表示模拟位置上报的时间间隔,单位是秒。 |
246
| locations | Array&lt;[Location](#location)&gt; | 是 | 是 | 表示模拟位置数组。 |
L
liu-binjun 已提交
247

248

L
liu-binjun 已提交
249
## CountryCode
L
liu-binjun 已提交
250

L
liu-binjun 已提交
251
国家码信息结构体,包含国家码字符串和国家码的来源信息。
L
liu-binjun 已提交
252

L
liu-binjun 已提交
253
**系统能力**:SystemCapability.Location.Location.Core
L
liu-binjun 已提交
254

L
liu-binjun 已提交
255 256 257 258
| 名称 | 类型 | 可读|可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| country | string | 是 | 否 | 表示国家码字符串。 |
| type |  [CountryCodeType](#countrycodetype) | 是 | 否 | 表示国家码信息来源。 |
L
liu-binjun 已提交
259 260


L
liu-binjun 已提交
261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323
## LocatingRequiredDataConfig<sup>10+</sup>

获取定位所需数据时的配置参数。

**系统能力**:SystemCapability.Location.Location.Core

**系统API**:此接口为系统接口。

| 名称 | 类型 | 可读|可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| type | [LocatingRequiredDataType](#locatingrequireddatatype10) | 是 | 是 | 表示请求获取数据的类型。 |
| needStartScan |  boolean | 是 | 是 | 表示是否需要发起扫描。 |
| scanInterval |  number | 是 | 是 | 表示扫描的时间间隔。单位是毫秒,默认值是10000毫秒,取值范围为大于0。 |
| scanTimeout |  number | 是 | 是 | 表示单次扫描的超时时间。单位是毫秒,默认值是10000毫秒,取值范围为大于0小于600000。 |


## LocatingRequiredData<sup>10+</sup>

表示定位业务所需的数据,包含WiFi或蓝牙扫描结果,APP拿到这些数据之后可以用于网络定位等业务。

**系统能力**:SystemCapability.Location.Location.Core

**系统API**:此接口为系统接口。

| 名称 | 类型 | 可读|可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| wifiData | [WifiScanInfo](#wifiscaninfo10) | 是 | 否 | 表示WiFi扫描结果。 |
| bluetoothData |  [BluetoothScanInfo](#bluetoothscaninfo10) | 是 | 否 | 表示蓝牙扫描结果。 |


## WifiScanInfo<sup>10+</sup>

WiFi扫描信息,包含扫描到的WiFi热点的ssid、bssid和rssi等信息。

**系统能力**:SystemCapability.Location.Location.Core

**系统API**:此接口为系统接口。

| 名称 | 类型 | 可读|可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| ssid | string | 是 | 否 | WiFi热点的SSID,编码格式为UTF-8。 |
| bssid | string | 是 | 否 | WiFi热点的BSSID。 |
| rssi | number | 是 | 否 | WiFi热点的信号强度(dBm)。 |
| frequency | number | 是 | 否 | WiFi热点的频率。 |
| timestamp | number | 是 | 否 | 时间戳。 |


## BluetoothScanInfo<sup>10+</sup>

蓝牙扫描信息。

**系统能力**:SystemCapability.Location.Location.Core

**系统API**:此接口为系统接口。

| 名称 | 类型 | 可读|可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| deviceName | string | 是 | 否 | 蓝牙设备名称。 |
| macAddress | string | 是 | 否 | 蓝牙设备的MAC地址。 |
| rssi | number | 是 | 否 | 蓝牙设备的信号强度(dBm)。 |
| timestamp | number | 是 | 否 | 时间戳。 |


L
liu-binjun 已提交
324
## LocationRequestPriority
325

L
liu-binjun 已提交
326
位置请求中位置信息优先级设置。
L
liu-binjun 已提交
327

L
liu-binjun 已提交
328
**系统能力**:SystemCapability.Location.Location.Core
L
liu-binjun 已提交
329

L
liu-binjun 已提交
330 331
| 名称 | 值 | 说明 |
| -------- | -------- | -------- |
332 333 334 335
| UNSET | 0x200 | 表示未设置优先级,表示[LocationRequestPriority](#locationrequestpriority)无效。 |
| ACCURACY | 0x201 | 表示精度优先。<br/>定位精度优先策略主要以GNSS定位技术为主,在开阔场景下可以提供米级的定位精度,具体性能指标依赖用户设备的定位硬件能力,但在室内等强遮蔽定位场景下,无法提供准确的位置服务。 |
| LOW_POWER | 0x202 | 表示低功耗优先。<br/>低功耗定位优先策略主要使用基站定位和WLAN、蓝牙定位技术,也可以同时提供室内和户外场景下的位置服务,因为其依赖周边基站、可见WLAN、蓝牙设备的分布情况,定位结果的精度波动范围较大,如果对定位结果精度要求不高,或者使用场景多在有基站、可见WLAN、蓝牙设备高密度分布的情况下,推荐使用,可以有效节省设备功耗。 |
| FIRST_FIX | 0x203 | 表示快速获取位置优先,如果应用希望快速拿到一个位置,可以将优先级设置为该字段。<br/>快速定位优先策略会同时使用GNSS定位、基站定位和WLAN、蓝牙定位技术,以便室内和户外场景下,通过此策略都可以获得位置结果,当各种定位技术都有提供位置结果时,系统会选择其中精度较好的结果返回给应用。因为对各种定位技术同时使用,对设备的硬件资源消耗较大,功耗也较大。 |
L
liu-binjun 已提交
336 337


L
liu-binjun 已提交
338
## LocationRequestScenario
L
liu-binjun 已提交
339

L
liu-binjun 已提交
340
  位置请求中定位场景设置。
L
liu-binjun 已提交
341

L
liu-binjun 已提交
342
**系统能力**:SystemCapability.Location.Location.Core
343

L
liu-binjun 已提交
344 345
| 名称 | 值 | 说明 |
| -------- | -------- | -------- |
346 347 348 349 350
| UNSET | 0x300 | 表示未设置场景信息。<br/>表示[LocationRequestScenario](#locationrequestscenario)字段无效。 |
| NAVIGATION | 0x301 | 表示导航场景。<br/>适用于在户外定位设备实时位置的场景,如车载、步行导航。<br/>在此场景下,为保证系统提供位置结果精度最优,主要使用GNSS定位技术提供定位服务<br/>此场景默认以最小1秒间隔上报定位结果。 |
| TRAJECTORY_TRACKING | 0x302 | 表示运动轨迹记录场景。<br/>适用于记录用户位置轨迹的场景,如运动类应用记录轨迹功能。主要使用GNSS定位技术提供定位服务。<br/>此场景默认以最小1秒间隔上报定位结果。 |
| CAR_HAILING | 0x303 | 表示打车场景。<br/>适用于用户出行打车时定位当前位置的场景,如网约车类应用。<br/>此场景默认以最小1秒间隔上报定位结果。 |
| DAILY_LIFE_SERVICE | 0x304 | 表示日常服务使用场景。<br/>适用于不需要定位用户精确位置的使用场景,如新闻资讯、网购、点餐类应用,做推荐、推送时定位用户大致位置即可。<br/>此场景默认以最小1秒间隔上报定位结果。 |
L
liu-binjun 已提交
351
| NO_POWER | 0x305 | 表示无功耗功场景,这种场景下不会主动触发定位,会在其他应用定位时,才给当前应用返回位置。 |
L
liu-binjun 已提交
352 353


L
liu-binjun 已提交
354
## LocationPrivacyType
355

L
liu-binjun 已提交
356
定位服务隐私协议类型。
357

L
liu-binjun 已提交
358
**系统能力**:SystemCapability.Location.Location.Core
359

L
liu-binjun 已提交
360
**系统API**:此接口为系统接口。
361

L
liu-binjun 已提交
362 363
| 名称 | 值 | 说明 |
| -------- | -------- | -------- |
364 365
| OTHERS | 0 | 其他场景。预留字段。 |
| STARTUP | 1 | 开机向导场景下的隐私协议。在开机时弹出协议,提醒用户阅读并选择是否授权。 |
L
liu-binjun 已提交
366
| CORE_LOCATION | 2 | 开启网络定位时弹出的隐私协议。 |
367

368

L
liu-binjun 已提交
369
## CountryCodeType
370

L
liu-binjun 已提交
371
国家码来源类型。
372

L
liu-binjun 已提交
373
**系统能力**:SystemCapability.Location.Location.Core
374

L
liu-binjun 已提交
375 376 377 378 379 380
| 名称 | 值 | 说明 |
| -------- | -------- | -------- |
| COUNTRY_CODE_FROM_LOCALE | 1 | 从全球化模块的语言配置信息中获取到的国家码。 |
| COUNTRY_CODE_FROM_SIM | 2 | 从SIM卡中获取到的国家码。 |
| COUNTRY_CODE_FROM_LOCATION | 3 | 基于用户的位置信息,通过逆地理编码查询到的国家码。 |
| COUNTRY_CODE_FROM_NETWORK | 4 | 从蜂窝网络注册信息中获取到的国家码。 |
381 382


L
liu-binjun 已提交
383 384 385 386 387 388 389 390 391 392 393 394 395 396
## LocatingRequiredDataType<sup>10+</sup>

定位业务所需数据的类型。

**系统能力**:SystemCapability.Location.Location.Core

**系统API**:此接口为系统接口。

| 名称 | 值 | 说明 |
| -------- | -------- | -------- |
| WIFI  | 1 | 表示WiFi扫描信息。 |
| BLUETOOTH | 2 | 表示蓝牙扫描信息。 |


L
liu-binjun 已提交
397
## geoLocationManager.on('locationChange')
398

L
liu-binjun 已提交
399
on(type: 'locationChange', request: LocationRequest, callback: Callback&lt;Location&gt;): void
400

401
开启位置变化订阅,并发起定位请求。
402

L
liu-binjun 已提交
403 404 405 406 407
**需要权限**:ohos.permission.APPROXIMATELY_LOCATION

**系统能力**:SystemCapability.Location.Location.Core

**参数:**
408 409 410

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
L
liu-binjun 已提交
411 412 413
  | type | string | 是 | 设置事件类型。type为“locationChange”,表示位置变化。 |
  | request |  [LocationRequest](#locationrequest) | 是 | 设置位置请求参数。 |
  | callback | Callback&lt;[Location](#location)&gt; | 是 | 接收位置变化状态变化监听。 |
L
liu-binjun 已提交
414 415 416 417 418 419 420

**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
421
|3301000 | Location service is unavailable.                                            |
422
|3301100 | The location switch is off.                                                 |
L
liu-binjun 已提交
423
|3301200 | Failed to obtain the geographical location.                                       |
L
liu-binjun 已提交
424 425

**示例**
L
liu-binjun 已提交
426

L
liu-binjun 已提交
427 428
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
R
ruan-shaofei 已提交
429
  let requestInfo = {'priority': geoLocationManager.LocationRequestPriority.FIRST_FIX, 'scenario': geoLocationManager.LocationRequestScenario.UNSET, 'timeInterval': 1, 'distanceInterval': 0, 'maxAccuracy': 0};
L
liu-binjun 已提交
430 431 432
  let locationChange = (location) => {
      console.log('locationChanger: data: ' + JSON.stringify(location));
  };
433
  try {
L
liu-binjun 已提交
434
      geoLocationManager.on('locationChange', requestInfo, locationChange);
435 436 437
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
L
liu-binjun 已提交
438
  
L
liu-binjun 已提交
439 440 441
  ```


L
liu-binjun 已提交
442
## geoLocationManager.off('locationChange')
L
liu-binjun 已提交
443

L
liu-binjun 已提交
444
off(type: 'locationChange', callback?: Callback&lt;Location&gt;): void
L
liu-binjun 已提交
445

L
liu-binjun 已提交
446
关闭位置变化订阅,并删除对应的定位请求。
447

448 449
**需要权限**:ohos.permission.APPROXIMATELY_LOCATION

L
liu-binjun 已提交
450
**系统能力**:SystemCapability.Location.Location.Core
L
liu-binjun 已提交
451

L
liu-binjun 已提交
452
**参数:**
L
liu-binjun 已提交
453 454 455

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
L
liu-binjun 已提交
456 457
  | type | string | 是 | 设置事件类型。type为“locationChange”,表示位置变化。 |
  | callback | Callback&lt;[Location](#location)&gt; | 否 | 需要取消订阅的回调函数。若无此参数,则取消当前类型的所有订阅。 |
L
liu-binjun 已提交
458 459 460 461 462 463 464

**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
465
|3301000 | Location service is unavailable.                                            |
466
|3301100 | The location switch is off.                                                 |
L
liu-binjun 已提交
467
|3301200 | Failed to obtain the geographical location.                                       |
L
liu-binjun 已提交
468 469

**示例**
L
liu-binjun 已提交
470

L
liu-binjun 已提交
471 472
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
R
ruan-shaofei 已提交
473
  let requestInfo = {'priority': geoLocationManager.LocationRequestPriority.FIRST_FIX, 'scenario': geoLocationManager.LocationRequestScenario.UNSET, 'timeInterval': 1, 'distanceInterval': 0, 'maxAccuracy': 0};
L
liu-binjun 已提交
474 475
  let locationChange = (location) => {
      console.log('locationChanger: data: ' + JSON.stringify(location));
476
  };
L
liu-binjun 已提交
477 478 479 480 481 482
  try {
      geoLocationManager.on('locationChange', requestInfo, locationChange);
      geoLocationManager.off('locationChange', locationChange);
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
L
liu-binjun 已提交
483 484 485
  ```


L
liu-binjun 已提交
486
## geoLocationManager.on('locationEnabledChange')
L
liu-binjun 已提交
487

L
liu-binjun 已提交
488
on(type: 'locationEnabledChange', callback: Callback&lt;boolean&gt;): void
L
liu-binjun 已提交
489

L
liu-binjun 已提交
490
订阅位置服务状态变化。
L
liu-binjun 已提交
491

L
liu-binjun 已提交
492
**系统能力**:SystemCapability.Location.Location.Core
493

L
liu-binjun 已提交
494
**参数:**
L
liu-binjun 已提交
495

496 497
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
L
liu-binjun 已提交
498 499
  | type | string | 是 | 设置事件类型。type为“locationEnabledChange”,表示位置服务状态。 |
  | callback | Callback&lt;boolean&gt; | 是 | 接收位置服务状态变化监听。 |
L
liu-binjun 已提交
500 501 502 503 504 505 506

**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
507
|3301000 | Location service is unavailable.                                            |
L
liu-binjun 已提交
508 509

**示例**
L
liu-binjun 已提交
510

L
liu-binjun 已提交
511 512
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
L
liu-binjun 已提交
513 514 515 516 517 518 519 520
  let locationEnabledChange = (state) => {
      console.log('locationEnabledChange: ' + JSON.stringify(state));
  }
  try {
      geoLocationManager.on('locationEnabledChange', locationEnabledChange);
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
L
liu-binjun 已提交
521 522 523
  ```


L
liu-binjun 已提交
524
## geoLocationManager.off('locationEnabledChange')
L
liu-binjun 已提交
525

L
liu-binjun 已提交
526
off(type: 'locationEnabledChange', callback?: Callback&lt;boolean&gt;): void;
L
liu-binjun 已提交
527

L
liu-binjun 已提交
528
取消订阅位置服务状态变化。
L
liu-binjun 已提交
529 530 531 532 533 534 535

**系统能力**:SystemCapability.Location.Location.Core

**参数**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
L
liu-binjun 已提交
536 537
  | type | string | 是 | 设置事件类型。type为“locationEnabledChange”,表示位置服务状态。 |
  | callback | Callback&lt;boolean&gt; | 否 | 需要取消订阅的回调函数。若无此参数,则取消当前类型的所有订阅。 |
L
liu-binjun 已提交
538 539 540 541 542 543 544

**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
545
|3301000 | Location service is unavailable.                                            |
L
liu-binjun 已提交
546 547

**示例**
L
liu-binjun 已提交
548

L
liu-binjun 已提交
549 550
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
L
liu-binjun 已提交
551 552
  let locationEnabledChange = (state) => {
      console.log('locationEnabledChange: state: ' + JSON.stringify(state));
553 554
  }
  try {
L
liu-binjun 已提交
555 556
      geoLocationManager.on('locationEnabledChange', locationEnabledChange);
      geoLocationManager.off('locationEnabledChange', locationEnabledChange);
557 558 559
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
L
liu-binjun 已提交
560 561 562
  ```


L
liu-binjun 已提交
563
## geoLocationManager.on('cachedGnssLocationsChange')
L
liu-binjun 已提交
564

L
liu-binjun 已提交
565
on(type: 'cachedGnssLocationsChange', request: CachedGnssLocationsRequest, callback: Callback&lt;Array&lt;Location&gt;&gt;): void;
L
liu-binjun 已提交
566

L
liu-binjun 已提交
567
订阅缓存GNSS定位结果上报事件。
L
liu-binjun 已提交
568

L
liu-binjun 已提交
569 570 571
**需要权限**:ohos.permission.APPROXIMATELY_LOCATION

**系统能力**:SystemCapability.Location.Location.Gnss
L
liu-binjun 已提交
572

573
**参数**
L
liu-binjun 已提交
574

575 576
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
L
liu-binjun 已提交
577 578 579
  | type | string | 是 | 设置事件类型。type为“cachedGnssLocationsChange”,表示GNSS缓存定位结果上报。 |
  | request |  [CachedGnssLocationsRequest](#cachedgnsslocationsrequest) | 是 | GNSS缓存功能配置参数 |
  | callback | Callback&lt;boolean&gt; | 是 | 接收GNSS缓存位置上报。 |
L
liu-binjun 已提交
580 581 582 583 584 585 586 587

**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
|3301000 | Location service is unavailable.                                            |
588
|3301100 | The location switch is off.                                                 |
L
liu-binjun 已提交
589
|3301200 | Failed to obtain the geographical location.                                       |
L
liu-binjun 已提交
590 591

**示例**
L
liu-binjun 已提交
592

L
liu-binjun 已提交
593 594
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
L
liu-binjun 已提交
595 596
  let cachedLocationsCb = (locations) => {
      console.log('cachedGnssLocationsChange: locations: ' + JSON.stringify(locations));
597
  }
L
liu-binjun 已提交
598
  let requestInfo = {'reportingPeriodSec': 10, 'wakeUpCacheQueueFull': true};
599
  try {
L
liu-binjun 已提交
600
      geoLocationManager.on('cachedGnssLocationsChange', requestInfo, cachedLocationsCb);
601 602 603
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
L
liu-binjun 已提交
604 605 606
  ```


L
liu-binjun 已提交
607
## geoLocationManager.off('cachedGnssLocationsChange')
L
liu-binjun 已提交
608

L
liu-binjun 已提交
609
off(type: 'cachedGnssLocationsChange', callback?: Callback&lt;Array&lt;Location&gt;&gt;): void;
L
liu-binjun 已提交
610

L
liu-binjun 已提交
611
取消订阅缓存GNSS定位结果上报事件。
L
liu-binjun 已提交
612

613 614
**需要权限**:ohos.permission.APPROXIMATELY_LOCATION

L
liu-binjun 已提交
615
**系统能力**:SystemCapability.Location.Location.Gnss
616

L
liu-binjun 已提交
617 618 619 620
**参数**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
L
liu-binjun 已提交
621 622
  | type | string | 是 | 设置事件类型。type为“cachedGnssLocationsChange”,表示GNSS缓存定位结果上报。 |
  | callback | Callback&lt;boolean&gt; | 否 | 需要取消订阅的回调函数。若无此参数,则取消当前类型的所有订阅。 |
L
liu-binjun 已提交
623 624 625 626 627 628 629 630

**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
|3301000 | Location service is unavailable.                                            |
631
|3301100 | The location switch is off.                                                 |
L
liu-binjun 已提交
632
|3301200 | Failed to obtain the geographical location.                                       |
L
liu-binjun 已提交
633 634

**示例**
L
liu-binjun 已提交
635

L
liu-binjun 已提交
636 637
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
L
liu-binjun 已提交
638 639 640 641
  let cachedLocationsCb = (locations) => {
      console.log('cachedGnssLocationsChange: locations: ' + JSON.stringify(locations));
  }
  let requestInfo = {'reportingPeriodSec': 10, 'wakeUpCacheQueueFull': true};
642
  try {
L
liu-binjun 已提交
643 644
      geoLocationManager.on('cachedGnssLocationsChange', requestInfo, cachedLocationsCb);
      geoLocationManager.off('cachedGnssLocationsChange');
645 646 647 648 649 650
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```


L
liu-binjun 已提交
651
## geoLocationManager.on('satelliteStatusChange')
652

L
liu-binjun 已提交
653 654 655
on(type: 'satelliteStatusChange', callback: Callback&lt;SatelliteStatusInfo&gt;): void;

订阅GNSS卫星状态信息上报事件。
656 657 658

**需要权限**:ohos.permission.APPROXIMATELY_LOCATION

L
liu-binjun 已提交
659
**系统能力**:SystemCapability.Location.Location.Gnss
660 661 662 663 664

**参数**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
L
liu-binjun 已提交
665 666
  | type | string | 是 | 设置事件类型。type为“satelliteStatusChange”,表示订阅GNSS卫星状态信息上报。 |
  | callback | Callback&lt;[SatelliteStatusInfo](#satellitestatusinfo)&gt; | 是 | 接收GNSS卫星状态信息上报。 |
667 668 669 670 671 672 673 674 675 676 677

**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
|3301000 | Location service is unavailable.                                            |
|3301100 | The location switch is off.                                                 |

**示例**
L
liu-binjun 已提交
678

679 680
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
L
liu-binjun 已提交
681 682 683
  let gnssStatusCb = (satelliteStatusInfo) => {
      console.log('satelliteStatusChange: ' + JSON.stringify(satelliteStatusInfo));
  }
684 685

  try {
L
liu-binjun 已提交
686
      geoLocationManager.on('satelliteStatusChange', gnssStatusCb);
687 688 689 690 691 692
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```


L
liu-binjun 已提交
693
## geoLocationManager.off('satelliteStatusChange')
694

L
liu-binjun 已提交
695 696 697
off(type: 'satelliteStatusChange', callback?: Callback&lt;SatelliteStatusInfo&gt;): void;

取消订阅GNSS卫星状态信息上报事件。
698 699 700

**需要权限**:ohos.permission.APPROXIMATELY_LOCATION

L
liu-binjun 已提交
701
**系统能力**:SystemCapability.Location.Location.Gnss
702 703 704 705 706

**参数**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
L
liu-binjun 已提交
707 708
  | type | string | 是 | 设置事件类型。type为“satelliteStatusChange”,表示订阅GNSS卫星状态信息上报。 |
  | callback | Callback&lt;[SatelliteStatusInfo](#satellitestatusinfo)&gt; | 否 | 需要取消订阅的回调函数。若无此参数,则取消当前类型的所有订阅。 |
709 710 711 712 713 714 715 716 717

**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
|3301000 | Location service is unavailable.                                            |
|3301100 | The location switch is off.                                                 |
L
liu-binjun 已提交
718

719 720

**示例**
L
liu-binjun 已提交
721

722 723
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
L
liu-binjun 已提交
724 725 726
  let gnssStatusCb = (satelliteStatusInfo) => {
      console.log('satelliteStatusChange: ' + JSON.stringify(satelliteStatusInfo));
  }
727
  try {
L
liu-binjun 已提交
728 729
      geoLocationManager.on('satelliteStatusChange', gnssStatusCb);
      geoLocationManager.off('satelliteStatusChange', gnssStatusCb);
730 731 732 733 734 735
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```


L
liu-binjun 已提交
736
## geoLocationManager.on('nmeaMessage')
737

L
liu-binjun 已提交
738
on(type: 'nmeaMessage', callback: Callback&lt;string&gt;): void;
739

L
liu-binjun 已提交
740
订阅GNSS NMEA信息上报事件。
741

Z
doc fix  
z30025928 已提交
742
**需要权限**:ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION
743

L
liu-binjun 已提交
744
**系统能力**:SystemCapability.Location.Location.Gnss
745

L
liu-binjun 已提交
746
**参数**
747 748 749

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
L
liu-binjun 已提交
750 751
  | type | string | 是 | 设置事件类型。type为“nmeaMessage”,表示订阅GNSS&nbsp;NMEA信息上报。 |
  | callback | Callback&lt;string&gt; | 是 | 接收GNSS&nbsp;NMEA信息上报。 |
752 753 754 755 756 757 758

**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
L
liu-binjun 已提交
759 760 761
|3301000 | Location service is unavailable.                                            |
|3301100 | The location switch is off.                                                 |

762 763

**示例**
L
liu-binjun 已提交
764

765 766
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
L
liu-binjun 已提交
767 768 769 770
  let nmeaCb = (str) => {
      console.log('nmeaMessage: ' + JSON.stringify(str));
  }

771
  try {
L
liu-binjun 已提交
772
      geoLocationManager.on('nmeaMessage', nmeaCb );
773 774 775 776 777 778
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```


L
liu-binjun 已提交
779
## geoLocationManager.off('nmeaMessage')
780

L
liu-binjun 已提交
781
off(type: 'nmeaMessage', callback?: Callback&lt;string&gt;): void;
782

L
liu-binjun 已提交
783
取消订阅GNSS NMEA信息上报事件。
784

Z
doc fix  
z30025928 已提交
785
**需要权限**:ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION
786

L
liu-binjun 已提交
787 788 789
**系统能力**:SystemCapability.Location.Location.Gnss

**参数**
790 791 792

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
L
liu-binjun 已提交
793 794
  | type | string | 是 | 设置事件类型。type为“nmeaMessage”,表示订阅GNSS&nbsp;NMEA信息上报。 |
  | callback | Callback&lt;string&gt; | 否 | 需要取消订阅的回调函数。若无此参数,则取消当前类型的所有订阅。 |
795 796 797 798 799 800 801

**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
L
liu-binjun 已提交
802 803 804
|3301000 | Location service is unavailable.                                            |
|3301100 | The location switch is off.                                                 |

805 806

**示例**
L
liu-binjun 已提交
807

808 809
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
L
liu-binjun 已提交
810 811 812 813
  let nmeaCb = (str) => {
      console.log('nmeaMessage: ' + JSON.stringify(str));
  }

814
  try {
L
liu-binjun 已提交
815 816
      geoLocationManager.on('nmeaMessage', nmeaCb);
      geoLocationManager.off('nmeaMessage', nmeaCb);
817 818 819 820 821 822
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```


L
liu-binjun 已提交
823
## geoLocationManager.on('gnssFenceStatusChange')
824

L
liu-binjun 已提交
825
on(type: 'gnssFenceStatusChange', request: GeofenceRequest, want: WantAgent): void;
826

L
liu-binjun 已提交
827
添加一个围栏,并订阅地理围栏事件。
828 829 830

**需要权限**:ohos.permission.APPROXIMATELY_LOCATION

L
liu-binjun 已提交
831
**系统能力**:SystemCapability.Location.Location.Geofence
832 833 834 835 836

**参数**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
L
liu-binjun 已提交
837 838
  | type | string | 是 | 设置事件类型。type为“gnssFenceStatusChange”,表示订阅围栏事件上报。 |
  | request |  [GeofenceRequest](#geofencerequest) | 是 | 围栏的配置参数。 |
839
  | want | [WantAgent](js-apis-app-ability-wantAgent.md) | 是 | 用于接收地理围栏事件上报(进出围栏)。 |
840 841 842 843 844 845 846

**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
L
liu-binjun 已提交
847 848 849
|3301000 | Location service is unavailable.                                            |
|3301100 | The location switch is off.                                                 |
|3301600 | Failed to operate the geofence.                                     |
850 851

**示例**
L
liu-binjun 已提交
852

853 854
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
855
  import wantAgent from '@ohos.app.ability.wantAgent';
L
liu-binjun 已提交
856 857 858 859 860 861
  
  let wantAgentInfo = {
      wants: [
          {
              bundleName: "com.example.myapplication",
              abilityName: "EntryAbility",
Z
fix doc  
z30025928 已提交
862
              action: "action1"
863
          }
L
liu-binjun 已提交
864 865 866
      ],
      operationType: wantAgent.OperationType.START_ABILITY,
      requestCode: 0,
Z
fix doc  
z30025928 已提交
867
      wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
L
liu-binjun 已提交
868 869 870 871 872 873 874 875 876 877
  };
  
  wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => {
    let requestInfo = {'priority': 0x201, 'scenario': 0x301, "geofence": {"latitude": 121, "longitude": 26, "radius": 100, "expiration": 10000}};
    try {
        geoLocationManager.on('gnssFenceStatusChange', requestInfo, wantAgentObj);
    } catch (err) {
        console.error("errCode:" + err.code + ",errMessage:" + err.message);
    }
  });
878 879 880
  ```


L
liu-binjun 已提交
881
## geoLocationManager.off('gnssFenceStatusChange')
882

L
liu-binjun 已提交
883
off(type: 'gnssFenceStatusChange', request: GeofenceRequest, want: WantAgent): void;
884

L
liu-binjun 已提交
885
删除一个围栏,并取消订阅该围栏事件。
886 887 888

**需要权限**:ohos.permission.APPROXIMATELY_LOCATION

L
liu-binjun 已提交
889
**系统能力**:SystemCapability.Location.Location.Geofence
890

L
liu-binjun 已提交
891
**参数**
892 893 894

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
L
liu-binjun 已提交
895 896
  | type | string | 是 | 设置事件类型。type为“gnssFenceStatusChange”,表示订阅围栏事件上报。 |
  | request | [GeofenceRequest](#geofencerequest) | 是 | 围栏的配置参数。 |
897
  | want | [WantAgent](js-apis-app-ability-wantAgent.md) | 是 | 用于接收地理围栏事件上报(进出围栏)。 |
898 899 900 901 902 903 904

**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
L
liu-binjun 已提交
905 906 907
|3301000 | Location service is unavailable.                                            |
|3301100 | The location switch is off.                                                 |
|3301600 | Failed to operate the geofence.                                     |
908 909

**示例**
L
liu-binjun 已提交
910

911 912
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
913
  import wantAgent from '@ohos.app.ability.wantAgent';
L
liu-binjun 已提交
914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937
  
  let wantAgentInfo = {
      wants: [
          {
              bundleName: "com.example.myapplication",
              abilityName: "EntryAbility",
              action: "action1",
          }
      ],
      operationType: wantAgent.OperationType.START_ABILITY,
      requestCode: 0,
      wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
  };
  
  wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => {
    let requestInfo = {'priority': 0x201, 'scenario': 0x301, "geofence": {"latitude": 121, "longitude": 26, "radius": 100, "expiration": 10000}};
    try {
        geoLocationManager.on('gnssFenceStatusChange', requestInfo, wantAgentObj);
        geoLocationManager.off('gnssFenceStatusChange', requestInfo, wantAgentObj);
    } catch (err) {
        console.error("errCode:" + err.code + ",errMessage:" + err.message);
    }
  });
  ```
938 939


L
liu-binjun 已提交
940
## geoLocationManager.on('countryCodeChange')
941

L
liu-binjun 已提交
942
on(type: 'countryCodeChange', callback: Callback&lt;CountryCode&gt;): void;
943

L
liu-binjun 已提交
944
订阅国家码信息变化事件。
945 946 947 948 949 950 951

**系统能力**:SystemCapability.Location.Location.Core

**参数**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
L
liu-binjun 已提交
952 953
  | type | string | 是 | 设置事件类型。type为“countryCodeChange”,表示订阅国家码信息变化事件。 |
  | callback | Callback&lt;[CountryCode](#countrycode)&gt; | 是 | 接收国家码信息上报。 |
954 955 956 957 958 959 960 961

**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
|3301000 | Location service is unavailable.                                            |
L
liu-binjun 已提交
962 963
|3301500 | Failed to query the area information.                                       |

964 965

**示例**
L
liu-binjun 已提交
966

967 968
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
L
liu-binjun 已提交
969 970 971 972
  let callback = (code) => {
      console.log('countryCodeChange: ' + JSON.stringify(code));
  }

973
  try {
L
liu-binjun 已提交
974
      geoLocationManager.on('countryCodeChange', callback);
975 976 977 978 979 980
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```


L
liu-binjun 已提交
981
## geoLocationManager.off('countryCodeChange')
982

L
liu-binjun 已提交
983
off(type: 'countryCodeChange', callback?: Callback&lt;CountryCode&gt;): void;
984

L
liu-binjun 已提交
985
取消订阅国家码变化事件。
986 987 988

**系统能力**:SystemCapability.Location.Location.Core

L
liu-binjun 已提交
989
**参数**
990 991 992

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
L
liu-binjun 已提交
993 994
  | type | string | 是 | 设置事件类型。type为“countryCodeChange”,表示取消订阅国家码信息变化事件。 |
  | callback | Callback&lt;[CountryCode](#countrycode)&gt; | 否 | 需要取消订阅的回调函数。若无此参数,则取消当前类型的所有订阅。 |
995 996 997 998 999 1000 1001 1002

**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
|3301000 | Location service is unavailable.                                            |
L
liu-binjun 已提交
1003
|3301500 | Failed to query the area information.                                       |
1004 1005

**示例**
L
liu-binjun 已提交
1006

1007 1008
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
L
liu-binjun 已提交
1009 1010 1011 1012
  let callback = (code) => {
      console.log('countryCodeChange: ' + JSON.stringify(code));
  }

1013
  try {
L
liu-binjun 已提交
1014 1015
      geoLocationManager.on('countryCodeChange', callback);
      geoLocationManager.off('countryCodeChange', callback);
1016 1017 1018 1019 1020 1021
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```


L
liu-binjun 已提交
1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104
## geoLocationManager.on('locatingRequiredDataChange')<sup>10+</sup>

on(type: 'locatingRequiredDataChange', config: LocatingRequiredDataConfig, callback: Callback&lt;Array&lt;LocatingRequiredData&gt;&gt;): void;

订阅定位业务所需数据的变化,主要包含WiFi和蓝牙扫描信息;根据入参决定是否启动WiFi和蓝牙扫描。

**需要权限**:ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION

**系统能力**:SystemCapability.Location.Location.Core

**系统API**:此接口为系统接口。

**参数**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | type | string | 是 | 设置事件类型。type为“locatingRequiredDataChange”,表示订阅定位业务所需数据的变化。 |
  | config | [LocatingRequiredDataConfig](#locatingrequireddataconfig10) | 是 | 表示获取定位所需数据时的配置参数。 |
  | callback | Callback&lt;Array&lt;[LocatingRequiredData](#locatingrequireddata10)&gt;&gt; | 是 | 接收定位业务所需数据的上报。 |

**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
|3301800 | Failed to start WiFi or Bluetooth scanning.                            |

**示例**

  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
  let callback = (code) => {
      console.log('locatingRequiredDataChange: ' + JSON.stringify(code));
  }
  let config = {'type': 1, 'needStartScan': true, 'scanInterval': 10000};
  try {
      geoLocationManager.on('locatingRequiredDataChange', config, callback);
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```


## geoLocationManager.off('locatingRequiredDataChange')<sup>10+</sup>

off(type: 'locatingRequiredDataChange', callback?: Callback&lt;Array&lt;LocatingRequiredData&gt;&gt;): void;

取消订阅定位业务所需数据的变化,并停止WiFi和蓝牙扫描。

**需要权限**:ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION

**系统能力**:SystemCapability.Location.Location.Core

**系统API**:此接口为系统接口。

**参数**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | type | string | 是 | 设置事件类型。type为“locatingRequiredDataChange”,表示取消订阅定位业务所需数据的变化。 |
  | callback | Callback&lt;Array&lt;[LocatingRequiredData](#locatingrequireddata10)&gt;&gt; | 否 | 需要取消订阅的回调函数。若无此参数,则取消当前类型的所有订阅。 |

**错误码**

错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

**示例**

  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
  let callback = (code) => {
      console.log('locatingRequiredDataChange: ' + JSON.stringify(code));
  }
  let config = {'type': 1, 'needStartScan': true, 'scanInterval': 10000};
  try {
      geoLocationManager.on('locatingRequiredDataChange', config, callback);
      geoLocationManager.off('locatingRequiredDataChange', callback);
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```

1105

L
liu-binjun 已提交
1106
## geoLocationManager.getCurrentLocation
1107

L
liu-binjun 已提交
1108
getCurrentLocation(request: CurrentLocationRequest, callback: AsyncCallback&lt;Location&gt;): void
1109

L
liu-binjun 已提交
1110 1111 1112
获取当前位置,使用callback回调异步返回结果。

**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
1113 1114 1115

**系统能力**:SystemCapability.Location.Location.Core

L
liu-binjun 已提交
1116 1117 1118 1119 1120 1121 1122
**参数**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | request | [CurrentLocationRequest](#currentlocationrequest) | 是 | 设置位置请求参数。 |
  | callback | AsyncCallback&lt;[Location](#location)&gt; | 是 | 用来接收位置信息的回调。 |

1123 1124 1125 1126 1127 1128 1129
**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
|3301000 | Location service is unavailable.                                            |
L
liu-binjun 已提交
1130 1131
|3301100 | The location switch is off.                                                 |
|3301200 | Failed to obtain the geographical location.  |
1132 1133

**示例**
L
liu-binjun 已提交
1134

1135 1136
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
R
ruan-shaofei 已提交
1137
  let requestInfo = {'priority': geoLocationManager.LocationRequestPriority.FIRST_FIX, 'scenario': geoLocationManager.LocationRequestScenario.UNSET,'maxAccuracy': 0};
L
liu-binjun 已提交
1138 1139 1140 1141 1142 1143 1144 1145 1146
  let locationChange = (err, location) => {
      if (err) {
          console.log('locationChanger: err=' + JSON.stringify(err));
      }
      if (location) {
          console.log('locationChanger: location=' + JSON.stringify(location));
      }
  };

1147
  try {
L
liu-binjun 已提交
1148
      geoLocationManager.getCurrentLocation(requestInfo, locationChange);
1149 1150 1151 1152 1153
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```

L
liu-binjun 已提交
1154
## geoLocationManager.getCurrentLocation
1155

L
liu-binjun 已提交
1156
getCurrentLocation(callback: AsyncCallback&lt;Location&gt;): void;
1157

L
liu-binjun 已提交
1158
获取当前位置,通过callback方式异步返回结果。
1159

L
liu-binjun 已提交
1160
**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
1161

L
liu-binjun 已提交
1162
**系统能力**:SystemCapability.Location.Location.Core
1163 1164 1165 1166 1167

**参数**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
L
liu-binjun 已提交
1168
  | callback | AsyncCallback&lt;[Location](#location)&gt; | 是 | 用来接收位置信息的回调。 |
1169 1170 1171 1172 1173 1174 1175

**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
L
liu-binjun 已提交
1176 1177 1178
|3301000 | Location service is unavailable.                                            |
|3301100 | The location switch is off.                                                 |
|3301200 | Failed to obtain the geographical location.  |
1179 1180

**示例**
L
liu-binjun 已提交
1181

1182 1183
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
L
liu-binjun 已提交
1184 1185 1186 1187 1188 1189 1190 1191 1192
  let locationChange = (err, location) => {
      if (err) {
          console.log('locationChanger: err=' + JSON.stringify(err));
      }
      if (location) {
          console.log('locationChanger: location=' + JSON.stringify(location));
      }
  };

1193
  try {
L
liu-binjun 已提交
1194
      geoLocationManager.getCurrentLocation(locationChange);
1195 1196 1197 1198 1199
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```

L
liu-binjun 已提交
1200
## geoLocationManager.getCurrentLocation
1201

L
liu-binjun 已提交
1202
getCurrentLocation(request?: CurrentLocationRequest): Promise&lt;Location&gt;
1203

L
liu-binjun 已提交
1204
获取当前位置,使用Promise方式异步返回结果。
1205

L
liu-binjun 已提交
1206
**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
1207

L
liu-binjun 已提交
1208
**系统能力**:SystemCapability.Location.Location.Core
1209 1210 1211 1212 1213

**参数**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
L
liu-binjun 已提交
1214
  | request | [CurrentLocationRequest](#currentlocationrequest) | 否 | 设置位置请求参数。 |
1215 1216 1217 1218 1219

**返回值**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
L
liu-binjun 已提交
1220
  | Promise&lt;[Location](#location)&gt;  | [Location](#location) | NA | 返回位置信息。 |
1221 1222 1223 1224 1225 1226 1227

**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
L
liu-binjun 已提交
1228 1229 1230
|3301000 | Location service is unavailable.                                            |
|3301100 | The location switch is off.                                                 |
|3301200 | Failed to obtain the geographical location.  |
1231 1232

**示例**
L
liu-binjun 已提交
1233

1234 1235
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
R
ruan-shaofei 已提交
1236
  let requestInfo = {'priority': geoLocationManager.LocationRequestPriority.FIRST_FIX, 'scenario': geoLocationManager.LocationRequestScenario.UNSET,'maxAccuracy': 0};
1237
  try {
L
liu-binjun 已提交
1238 1239 1240
      geoLocationManager.getCurrentLocation(requestInfo).then((result) => {
          console.log('current location: ' + JSON.stringify(result));
      })  
1241
      .catch((error) => {
L
liu-binjun 已提交
1242
          console.log('promise, getCurrentLocation: error=' + JSON.stringify(error));
1243 1244 1245 1246 1247 1248 1249
      });
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```


L
liu-binjun 已提交
1250
## geoLocationManager.getLastLocation
1251

L
liu-binjun 已提交
1252
getLastLocation(): Location
1253

L
liu-binjun 已提交
1254
获取上一次位置。
1255

L
liu-binjun 已提交
1256
**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
1257

L
liu-binjun 已提交
1258 1259 1260
**系统能力**:SystemCapability.Location.Location.Core

**返回值**
1261 1262 1263

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
L
liu-binjun 已提交
1264
  | Location  | [Location](#location) | NA | 位置信息。 |
1265 1266 1267 1268 1269 1270 1271

**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
L
liu-binjun 已提交
1272 1273 1274
|3301000 | Location service is unavailable.  |
|3301100 | The location switch is off.  |
|3301200 |Failed to obtain the geographical location.  |
1275 1276

**示例**
L
liu-binjun 已提交
1277

1278 1279 1280
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
  try {
L
liu-binjun 已提交
1281
      let location = geoLocationManager.getLastLocation();
1282 1283 1284 1285 1286 1287
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```


L
liu-binjun 已提交
1288
## geoLocationManager.isLocationEnabled
1289

L
liu-binjun 已提交
1290
isLocationEnabled(): boolean
1291

L
liu-binjun 已提交
1292
判断位置服务是否已经使能。
1293

L
liu-binjun 已提交
1294
**系统能力**:SystemCapability.Location.Location.Core
1295 1296 1297 1298 1299

**返回值**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
L
liu-binjun 已提交
1300
  | boolean  | boolean | NA | 位置服务是否已经使能。 |
1301 1302 1303 1304 1305 1306 1307

**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
L
liu-binjun 已提交
1308
|3301000 | Location service is unavailable.  |
1309 1310

**示例**
L
liu-binjun 已提交
1311

1312 1313 1314
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
  try {
L
liu-binjun 已提交
1315
      let locationEnabled = geoLocationManager.isLocationEnabled();
1316 1317 1318 1319 1320 1321
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```


L
liu-binjun 已提交
1322
## geoLocationManager.enableLocation
1323

L
liu-binjun 已提交
1324
enableLocation(callback: AsyncCallback&lt;void&gt;): void;
1325

L
liu-binjun 已提交
1326
打开位置服务,使用callback回调异步返回结果。
1327

L
liu-binjun 已提交
1328
**系统API**:此接口为系统接口。
L
liu-binjun 已提交
1329 1330 1331 1332 1333 1334

**需要权限**:ohos.permission.MANAGE_SECURE_SETTINGS

**系统能力**:SystemCapability.Location.Location.Core

**参数**
1335 1336 1337

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
L
liu-binjun 已提交
1338
  | callback | AsyncCallback&lt;void&gt; | 是 | 用来接收错误码信息。 |
1339 1340 1341 1342 1343 1344 1345

**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
L
liu-binjun 已提交
1346
|3301000 | Location service is unavailable.                                            |
1347 1348

**示例**
L
liu-binjun 已提交
1349

1350 1351 1352
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
  try {
L
liu-binjun 已提交
1353 1354 1355 1356 1357
      geoLocationManager.enableLocation((err, data) => {
          if (err) {
              console.log('enableLocation: err=' + JSON.stringify(err));
          }
      });
1358 1359 1360 1361 1362 1363
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```


L
liu-binjun 已提交
1364
## geoLocationManager.enableLocation
1365

L
liu-binjun 已提交
1366
enableLocation(): Promise&lt;void&gt;
1367

L
liu-binjun 已提交
1368
打开位置服务,使用Promise方式异步返回结果。
1369

L
liu-binjun 已提交
1370
**系统API**:此接口为系统接口。
1371

L
liu-binjun 已提交
1372
**需要权限**:ohos.permission.MANAGE_SECURE_SETTINGS
1373

L
liu-binjun 已提交
1374 1375 1376
**系统能力**:SystemCapability.Location.Location.Core

**返回值**
1377 1378 1379

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
L
liu-binjun 已提交
1380
  | Promise&lt;void&gt;  | void | NA | 返回错误码信息。 |
1381 1382 1383 1384 1385 1386 1387

**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
L
liu-binjun 已提交
1388
|3301000 | Location service is unavailable.                                            |
1389 1390

**示例**
L
liu-binjun 已提交
1391

1392 1393 1394
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
  try {
L
liu-binjun 已提交
1395 1396 1397 1398 1399
      geoLocationManager.enableLocation().then((result) => {
          console.log('promise, enableLocation succeed');
      })
      .catch((error) => {
          console.log('promise, enableLocation: error=' + JSON.stringify(error));
1400 1401 1402 1403 1404 1405
      });
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```

L
liu-binjun 已提交
1406
## geoLocationManager.disableLocation
1407

L
liu-binjun 已提交
1408
disableLocation(): void;
1409

L
liu-binjun 已提交
1410
关闭位置服务。
1411

L
liu-binjun 已提交
1412
**系统API**:此接口为系统接口。
1413

L
liu-binjun 已提交
1414
**需要权限**:ohos.permission.MANAGE_SECURE_SETTINGS
1415

L
liu-binjun 已提交
1416
**系统能力**:SystemCapability.Location.Location.Core
1417 1418 1419 1420 1421 1422 1423

**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
L
liu-binjun 已提交
1424
|3301000 | Location service is unavailable.                                            |
1425 1426

**示例**
L
liu-binjun 已提交
1427

1428 1429 1430
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
  try {
L
liu-binjun 已提交
1431
      geoLocationManager.disableLocation();
1432 1433 1434 1435 1436 1437
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```


L
liu-binjun 已提交
1438
## geoLocationManager.getAddressesFromLocation
1439

L
liu-binjun 已提交
1440
getAddressesFromLocation(request: ReverseGeoCodeRequest, callback: AsyncCallback&lt;Array&lt;GeoAddress&gt;&gt;): void
1441

L
liu-binjun 已提交
1442
调用逆地理编码服务,将坐标转换为地理描述,使用callback回调异步返回结果。
1443

L
liu-binjun 已提交
1444
**系统能力**:SystemCapability.Location.Location.Geocoder
1445 1446 1447 1448 1449

**参数**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
L
liu-binjun 已提交
1450 1451
  | request | [ReverseGeoCodeRequest](#reversegeocoderequest) | 是 | 设置逆地理编码请求的相关参数。 |
  | callback | AsyncCallback&lt;Array&lt;[GeoAddress](#geoaddress)&gt;&gt; | 是 | 接收逆地理编码结果的回调函数。 |
1452 1453 1454 1455 1456 1457 1458 1459

**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
|3301000 | Location service is unavailable.   |
L
liu-binjun 已提交
1460
|3301300 | Reverse geocoding query failed.   |
1461 1462

**示例**
L
liu-binjun 已提交
1463

1464 1465
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
L
liu-binjun 已提交
1466
  let reverseGeocodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1};
1467
  try {
L
liu-binjun 已提交
1468
      geoLocationManager.getAddressesFromLocation(reverseGeocodeRequest, (err, data) => {
1469
          if (err) {
L
liu-binjun 已提交
1470 1471 1472 1473
              console.log('getAddressesFromLocation: err=' + JSON.stringify(err));
          }
          if (data) {
              console.log('getAddressesFromLocation: data=' + JSON.stringify(data));
1474 1475 1476 1477 1478 1479 1480 1481
          }
      });
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```


L
liu-binjun 已提交
1482
## geoLocationManager.getAddressesFromLocation
1483

L
liu-binjun 已提交
1484
getAddressesFromLocation(request: ReverseGeoCodeRequest): Promise&lt;Array&lt;GeoAddress&gt;&gt;;
1485

L
liu-binjun 已提交
1486
调用逆地理编码服务,将坐标转换为地理描述,使用Promise方式异步返回结果。
1487

L
liu-binjun 已提交
1488
**系统能力**:SystemCapability.Location.Location.Geocoder
1489

L
liu-binjun 已提交
1490 1491 1492 1493 1494
**参数**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | request | [ReverseGeoCodeRequest](#reversegeocoderequest) | 是 | 设置逆地理编码请求的相关参数。 |
1495 1496 1497 1498 1499

**返回值**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
L
liu-binjun 已提交
1500
  | Promise&lt;Array&lt;[GeoAddress](#geoaddress)&gt;&gt;  | Array&lt;[GeoAddress](#geoaddress)&gt; | NA | 返回地理描述信息。 |
1501 1502 1503 1504 1505 1506 1507 1508

**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
|3301000 | Location service is unavailable.   |
L
liu-binjun 已提交
1509
|3301300 | Reverse geocoding query failed.   |
1510 1511

**示例**
L
liu-binjun 已提交
1512

1513 1514
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
L
liu-binjun 已提交
1515
  let reverseGeocodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1};
1516
  try {
L
liu-binjun 已提交
1517 1518
      geoLocationManager.getAddressesFromLocation(reverseGeocodeRequest).then((data) => {
          console.log('getAddressesFromLocation: ' + JSON.stringify(data));
1519 1520
      })
      .catch((error) => {
L
liu-binjun 已提交
1521
          console.log('promise, getAddressesFromLocation: error=' + JSON.stringify(error));
1522 1523 1524 1525 1526 1527 1528
      });
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```


L
liu-binjun 已提交
1529
## geoLocationManager.getAddressesFromLocationName
1530

L
liu-binjun 已提交
1531
getAddressesFromLocationName(request: GeoCodeRequest, callback: AsyncCallback&lt;Array&lt;GeoAddress&gt;&gt;): void
1532

L
liu-binjun 已提交
1533
调用地理编码服务,将地理描述转换为具体坐标,使用callback回调异步返回结果。
1534

L
liu-binjun 已提交
1535
**系统能力**:SystemCapability.Location.Location.Geocoder
1536 1537

**参数**
L
liu-binjun 已提交
1538

1539 1540
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
L
liu-binjun 已提交
1541 1542
  | request | [GeoCodeRequest](#geocoderequest) | 是 | 设置地理编码请求的相关参数。 |
  | callback | AsyncCallback&lt;Array&lt;[GeoAddress](#geoaddress)&gt;&gt; | 是 | 接收地理编码结果的回调函数。 |
L
liu-binjun 已提交
1543

1544
**错误码**
L
liu-binjun 已提交
1545

1546
以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)
L
liu-binjun 已提交
1547

1548 1549 1550
| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
|3301000 | Location service is unavailable.   |
L
liu-binjun 已提交
1551
|3301400 | Geocoding query failed.   |
1552 1553

**示例**
L
liu-binjun 已提交
1554

1555 1556
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
L
liu-binjun 已提交
1557
  let geocodeRequest = {"description": "上海市浦东新区xx路xx号", "maxItems": 1};
1558
  try {
L
liu-binjun 已提交
1559
      geoLocationManager.getAddressesFromLocationName(geocodeRequest, (err, data) => {
1560
          if (err) {
L
liu-binjun 已提交
1561 1562 1563 1564
              console.log('getAddressesFromLocationName: err=' + JSON.stringify(err));
          }
          if (data) {
              console.log('getAddressesFromLocationName: data=' + JSON.stringify(data));
1565 1566 1567 1568 1569 1570 1571 1572
          }
      });
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```


L
liu-binjun 已提交
1573
## geoLocationManager.getAddressesFromLocationName
1574

L
liu-binjun 已提交
1575
getAddressesFromLocationName(request: GeoCodeRequest): Promise&lt;Array&lt;GeoAddress&gt;&gt;
1576

L
liu-binjun 已提交
1577
调用地理编码服务,将地理描述转换为具体坐标,使用Promise方式异步返回结果。
L
liu-binjun 已提交
1578

L
liu-binjun 已提交
1579
**系统能力**:SystemCapability.Location.Location.Geocoder
L
liu-binjun 已提交
1580

1581 1582 1583 1584
**参数**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
L
liu-binjun 已提交
1585
  | request | [GeoCodeRequest](#geocoderequest) | 是 | 设置地理编码请求的相关参数。 |
1586

L
liu-binjun 已提交
1587 1588
**返回值**

1589 1590
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
L
liu-binjun 已提交
1591
  | Promise&lt;Array&lt;[GeoAddress](#geoaddress)&gt;&gt;  | Array&lt;[GeoAddress](#geoaddress)&gt; | NA | 返回地理编码查询结果。 |
L
liu-binjun 已提交
1592 1593 1594 1595 1596 1597 1598

**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
L
liu-binjun 已提交
1599 1600
|3301000 | Location service is unavailable.   |
|3301400 | Geocoding query failed.   |
L
liu-binjun 已提交
1601 1602

**示例**
L
liu-binjun 已提交
1603

L
liu-binjun 已提交
1604 1605
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
L
liu-binjun 已提交
1606
  let geocodeRequest = {"description": "上海市浦东新区xx路xx号", "maxItems": 1};
1607
  try {
L
liu-binjun 已提交
1608 1609 1610
      geoLocationManager.getAddressesFromLocationName(geocodeRequest).then((result) => {
          console.log('getAddressesFromLocationName: ' + JSON.stringify(result));
      })
1611
      .catch((error) => {
L
liu-binjun 已提交
1612
          console.log('promise, getAddressesFromLocationName: error=' + JSON.stringify(error));
1613 1614 1615 1616
      });
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
L
liu-binjun 已提交
1617 1618
  ```

L
liu-binjun 已提交
1619
## geoLocationManager.isGeocoderAvailable
L
liu-binjun 已提交
1620

L
liu-binjun 已提交
1621
isGeocoderAvailable(): boolean;
L
liu-binjun 已提交
1622

L
liu-binjun 已提交
1623
判断(逆)地理编码服务状态。
L
liu-binjun 已提交
1624

L
liu-binjun 已提交
1625
**系统能力**:SystemCapability.Location.Location.Geocoder
L
liu-binjun 已提交
1626

L
liu-binjun 已提交
1627
**返回值**
1628 1629 1630

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
L
liu-binjun 已提交
1631
  | boolean  | boolean | NA | 返回(逆)地理编码服务是否可用。 |
1632

L
liu-binjun 已提交
1633 1634 1635 1636 1637 1638
**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
L
liu-binjun 已提交
1639
|3301000 | Location service is unavailable.   |
L
liu-binjun 已提交
1640 1641

**示例**
L
liu-binjun 已提交
1642

L
liu-binjun 已提交
1643 1644
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
1645
  try {
L
liu-binjun 已提交
1646
      let isAvailable = geoLocationManager.isGeocoderAvailable();
1647 1648 1649
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
L
liu-binjun 已提交
1650 1651 1652
  ```


L
liu-binjun 已提交
1653
## geoLocationManager.getCachedGnssLocationsSize
L
liu-binjun 已提交
1654

L
liu-binjun 已提交
1655
getCachedGnssLocationsSize(callback: AsyncCallback&lt;number&gt;): void;
L
liu-binjun 已提交
1656

L
liu-binjun 已提交
1657
获取GNSS芯片缓存位置的个数。
1658

L
liu-binjun 已提交
1659
**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
1660

L
liu-binjun 已提交
1661 1662 1663
**系统能力**:SystemCapability.Location.Location.Gnss

**参数**
1664 1665 1666

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
L
liu-binjun 已提交
1667
  | callback | AsyncCallback&lt;number&gt; | 是 | 用来接收GNSS芯片缓存位置个数的回调。 |
1668

L
liu-binjun 已提交
1669 1670 1671 1672 1673 1674
**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
L
liu-binjun 已提交
1675 1676
|3301000 | Location service is unavailable.   |
|3301100 | The location switch is off.   |
L
liu-binjun 已提交
1677 1678

**示例**
L
liu-binjun 已提交
1679

L
liu-binjun 已提交
1680 1681
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
1682
  try {
L
liu-binjun 已提交
1683 1684 1685 1686 1687 1688 1689
      geoLocationManager.getCachedGnssLocationsSize((err, size) => {
          if (err) {
              console.log('getCachedGnssLocationsSize: err=' + JSON.stringify(err));
          }
          if (size) {
              console.log('getCachedGnssLocationsSize: size=' + JSON.stringify(size));
          }
1690 1691 1692 1693
      });
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
L
liu-binjun 已提交
1694 1695 1696
  ```


L
liu-binjun 已提交
1697
## geoLocationManager.getCachedGnssLocationsSize
L
liu-binjun 已提交
1698

L
liu-binjun 已提交
1699
getCachedGnssLocationsSize(): Promise&lt;number&gt;;
L
liu-binjun 已提交
1700

L
liu-binjun 已提交
1701
获取GNSS芯片缓存位置的个数。
L
liu-binjun 已提交
1702

L
liu-binjun 已提交
1703
**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
L
liu-binjun 已提交
1704

L
liu-binjun 已提交
1705 1706 1707 1708 1709 1710 1711
**系统能力**:SystemCapability.Location.Location.Gnss

**返回值**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | Promise&lt;number&gt;  | number | NA | 返回GNSS缓存位置的个数。 |
L
liu-binjun 已提交
1712

1713
**错误码**
L
liu-binjun 已提交
1714

1715 1716 1717 1718
以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
L
liu-binjun 已提交
1719 1720
|3301000 | Location service is unavailable.   |
|3301100 | The location switch is off.   |
1721 1722

**示例**
L
liu-binjun 已提交
1723

1724 1725 1726
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
  try {
L
liu-binjun 已提交
1727 1728 1729 1730 1731 1732
      geoLocationManager.getCachedGnssLocationsSize().then((result) => {
          console.log('promise, getCachedGnssLocationsSize: ' + JSON.stringify(result));
      }) 
      .catch((error) => {
          console.log('promise, getCachedGnssLocationsSize: error=' + JSON.stringify(error));
      });
1733 1734 1735 1736 1737 1738
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```


L
liu-binjun 已提交
1739
## geoLocationManager.flushCachedGnssLocations
1740

L
liu-binjun 已提交
1741
flushCachedGnssLocations(callback: AsyncCallback&lt;void&gt;): void;
1742

L
liu-binjun 已提交
1743
读取并清空GNSS芯片所有缓存位置。
1744

L
liu-binjun 已提交
1745
**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
1746

L
liu-binjun 已提交
1747 1748 1749 1750 1751 1752 1753
**系统能力**:SystemCapability.Location.Location.Gnss

**参数**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | callback | AsyncCallback&lt;void&gt; | 是 | 用来接收错误码信息。 |
L
liu-binjun 已提交
1754 1755 1756 1757 1758 1759 1760

**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
L
liu-binjun 已提交
1761 1762 1763
|3301000 | Location service is unavailable.   |
|3301100 | The location switch is off.   |
|3301200 | Failed to obtain the geographical location.   |
L
liu-binjun 已提交
1764 1765

**示例**
L
liu-binjun 已提交
1766

L
liu-binjun 已提交
1767 1768
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
1769
  try {
L
liu-binjun 已提交
1770 1771 1772 1773 1774
      geoLocationManager.flushCachedGnssLocations((err, result) => {
          if (err) {
              console.log('flushCachedGnssLocations: err=' + JSON.stringify(err));
          }
      });
1775 1776 1777
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
L
liu-binjun 已提交
1778 1779 1780
  ```


L
liu-binjun 已提交
1781
## geoLocationManager.flushCachedGnssLocations
L
liu-binjun 已提交
1782

L
liu-binjun 已提交
1783
flushCachedGnssLocations(): Promise&lt;void&gt;;
L
liu-binjun 已提交
1784

L
liu-binjun 已提交
1785
读取并清空GNSS芯片所有缓存位置。
L
liu-binjun 已提交
1786

L
liu-binjun 已提交
1787
**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
L
liu-binjun 已提交
1788

L
liu-binjun 已提交
1789
**系统能力**:SystemCapability.Location.Location.Gnss
L
liu-binjun 已提交
1790

L
liu-binjun 已提交
1791
**返回值**
1792 1793 1794

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
L
liu-binjun 已提交
1795
  | Promise&lt;void&gt;  | void | NA | 接收错误码。 |
1796

L
liu-binjun 已提交
1797 1798 1799 1800 1801 1802
**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
L
liu-binjun 已提交
1803 1804 1805
|3301000 | Location service is unavailable.   |
|3301100 | The location switch is off.   |
|3301200 | Failed to obtain the geographical location.   |
L
liu-binjun 已提交
1806 1807

**示例**
L
liu-binjun 已提交
1808

L
liu-binjun 已提交
1809 1810
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
1811
  try {
L
liu-binjun 已提交
1812 1813 1814 1815 1816 1817
      geoLocationManager.flushCachedGnssLocations().then((result) => {
          console.log('promise, flushCachedGnssLocations success');
      })
      .catch((error) => {
          console.log('promise, flushCachedGnssLocations: error=' + JSON.stringify(error));
      });
1818 1819 1820
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
L
liu-binjun 已提交
1821 1822 1823
  ```


L
liu-binjun 已提交
1824
## geoLocationManager.sendCommand
L
liu-binjun 已提交
1825

L
liu-binjun 已提交
1826
sendCommand(command: LocationCommand, callback: AsyncCallback&lt;void&gt;): void;
L
liu-binjun 已提交
1827

L
liu-binjun 已提交
1828
给位置服务子系统的各个部件发送扩展命令。
L
liu-binjun 已提交
1829 1830 1831

**系统能力**:SystemCapability.Location.Location.Core

L
liu-binjun 已提交
1832 1833 1834 1835 1836 1837
**参数**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | command |  [LocationCommand](#locationcommand) | 是 | 指定目标场景,和将要发送的命令(字符串)。 |
  | callback | AsyncCallback&lt;void&gt; | 是 | 用来接收错误码。 |
L
liu-binjun 已提交
1838 1839 1840 1841 1842 1843 1844

**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
L
liu-binjun 已提交
1845
|3301000 | Location service is unavailable.   |
L
liu-binjun 已提交
1846 1847

**示例**
L
liu-binjun 已提交
1848

L
liu-binjun 已提交
1849 1850
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
L
liu-binjun 已提交
1851
  let requestInfo = {'scenario': 0x301, 'command': "command_1"};
1852
  try {
L
liu-binjun 已提交
1853 1854 1855 1856 1857
      geoLocationManager.sendCommand(requestInfo, (err, result) => {
          if (err) {
              console.log('sendCommand: err=' + JSON.stringify(err));
          }
      });
1858 1859 1860
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
L
liu-binjun 已提交
1861 1862 1863
  ```


L
liu-binjun 已提交
1864
## geoLocationManager.sendCommand
L
liu-binjun 已提交
1865

L
liu-binjun 已提交
1866
sendCommand(command: LocationCommand): Promise&lt;void&gt;;
L
liu-binjun 已提交
1867

L
liu-binjun 已提交
1868
给位置服务子系统的各个部件发送扩展命令。
L
liu-binjun 已提交
1869 1870 1871

**系统能力**:SystemCapability.Location.Location.Core

L
liu-binjun 已提交
1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882
**参数**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | command | [LocationCommand](#locationcommand) | 是 | 指定目标场景,和将要发送的命令(字符串)。 |

**返回值**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | Promise&lt;void&gt;  | void | NA | 接收错误码。 |
L
liu-binjun 已提交
1883 1884 1885 1886 1887 1888 1889 1890 1891 1892

**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
|3301000 | Location service is unavailable.                                            |

**示例**
L
liu-binjun 已提交
1893

L
liu-binjun 已提交
1894 1895
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
L
liu-binjun 已提交
1896
  let requestInfo = {'scenario': 0x301, 'command': "command_1"};
1897
  try {
L
liu-binjun 已提交
1898 1899 1900 1901 1902 1903
      geoLocationManager.sendCommand(requestInfo).then((result) => {
          console.log('promise, sendCommand success');
      })  
      .catch((error) => {
          console.log('promise, sendCommand: error=' + JSON.stringify(error));
      });
1904 1905 1906
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
L
liu-binjun 已提交
1907 1908 1909
  ```


L
liu-binjun 已提交
1910
## geoLocationManager.getCountryCode
L
liu-binjun 已提交
1911

L
liu-binjun 已提交
1912
getCountryCode(callback: AsyncCallback&lt;CountryCode&gt;): void;
L
liu-binjun 已提交
1913

L
liu-binjun 已提交
1914
查询当前的国家码。
L
liu-binjun 已提交
1915

1916 1917
**系统能力**:SystemCapability.Location.Location.Core

1918
**参数**
1919

1920 1921
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
L
liu-binjun 已提交
1922
  | callback | AsyncCallback&lt;[CountryCode](#countrycode)&gt; | 是 | 用来接收国家码。 |
L
liu-binjun 已提交
1923 1924 1925 1926 1927 1928 1929 1930

**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
|3301000 | Location service is unavailable.                                            |
L
liu-binjun 已提交
1931
|3301500 | Failed to query the area information.|
L
liu-binjun 已提交
1932 1933

**示例**
L
liu-binjun 已提交
1934

L
liu-binjun 已提交
1935 1936
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
1937
  try {
L
liu-binjun 已提交
1938 1939 1940 1941 1942 1943 1944 1945
      geoLocationManager.getCountryCode((err, result) => {
          if (err) {
              console.log('getCountryCode: err=' + JSON.stringify(err));
          }
          if (result) {
              console.log('getCountryCode: result=' + JSON.stringify(result));
          }
      });
1946 1947 1948
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
L
liu-binjun 已提交
1949 1950 1951
  ```


L
liu-binjun 已提交
1952
## geoLocationManager.getCountryCode
1953

L
liu-binjun 已提交
1954
getCountryCode(): Promise&lt;CountryCode&gt;;
L
liu-binjun 已提交
1955

L
liu-binjun 已提交
1956
查询当前的国家码。
L
liu-binjun 已提交
1957

1958 1959
**系统能力**:SystemCapability.Location.Location.Core

1960
**返回值**
L
liu-binjun 已提交
1961 1962 1963

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
L
liu-binjun 已提交
1964
  | Promise&lt;[CountryCode](#countrycode)&gt; | [CountryCode](#countrycode) | NA | 用来接收国家码。 |
L
liu-binjun 已提交
1965 1966 1967 1968 1969 1970 1971 1972

**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
|3301000 | Location service is unavailable.                                            |
L
liu-binjun 已提交
1973
|3301500 | Failed to query the area information.|
L
liu-binjun 已提交
1974 1975

**示例**
L
liu-binjun 已提交
1976

L
liu-binjun 已提交
1977 1978
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
1979
  try {
L
liu-binjun 已提交
1980 1981 1982 1983 1984 1985 1986
      geoLocationManager.getCountryCode()
      .then((result) => {
          console.log('promise, getCountryCode: result=' + JSON.stringify(result));
      })
      .catch((error) => {
          console.log('promise, getCountryCode: error=' + JSON.stringify(error));
      });
1987 1988 1989 1990 1991 1992
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```


L
liu-binjun 已提交
1993
## geoLocationManager.enableLocationMock
1994

L
liu-binjun 已提交
1995
enableLocationMock(): void;
1996

L
liu-binjun 已提交
1997
使能位置模拟功能。
1998 1999 2000

**系统能力**:SystemCapability.Location.Location.Core

L
liu-binjun 已提交
2001
**系统API**:此接口为系统接口。
2002 2003 2004 2005 2006 2007 2008 2009

**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
|3301000 | Location service is unavailable.                                            |
L
liu-binjun 已提交
2010
|3301100 | The location switch is off.|
2011 2012

**示例**
L
liu-binjun 已提交
2013

2014 2015 2016
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
  try {
L
liu-binjun 已提交
2017
      geoLocationManager.enableLocationMock();
2018 2019 2020
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
L
liu-binjun 已提交
2021 2022 2023
  ```


L
liu-binjun 已提交
2024
## geoLocationManager.disableLocationMock
L
liu-binjun 已提交
2025

L
liu-binjun 已提交
2026
disableLocationMock(): void;
L
liu-binjun 已提交
2027

L
liu-binjun 已提交
2028
去使能位置模拟功能。
L
liu-binjun 已提交
2029 2030 2031

**系统能力**:SystemCapability.Location.Location.Core

L
liu-binjun 已提交
2032
**系统API**:此接口为系统接口。
L
liu-binjun 已提交
2033

L
liu-binjun 已提交
2034
**错误码**
L
liu-binjun 已提交
2035

L
liu-binjun 已提交
2036
以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)
L
liu-binjun 已提交
2037

L
liu-binjun 已提交
2038 2039 2040 2041
| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
|3301000 | Location service is unavailable.                                            |
|3301100 | The location switch is off.|
L
liu-binjun 已提交
2042

L
liu-binjun 已提交
2043
**示例**
L
liu-binjun 已提交
2044

L
liu-binjun 已提交
2045 2046 2047 2048 2049 2050 2051 2052
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
  try {
      geoLocationManager.disableLocationMock();
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```
L
liu-binjun 已提交
2053 2054


L
liu-binjun 已提交
2055
## geoLocationManager.setMockedLocations
L
liu-binjun 已提交
2056

L
liu-binjun 已提交
2057
setMockedLocations(config: LocationMockConfig): void;
L
liu-binjun 已提交
2058

L
liu-binjun 已提交
2059
设置模拟的位置信息,后面会以该接口中携带的时间间隔上报模拟位置。
L
liu-binjun 已提交
2060

2061
该接口需要在调用[geoLocationManager.enableLocationMock](#geolocationmanagerenablelocationmock)之后才能调用。
L
liu-binjun 已提交
2062

L
liu-binjun 已提交
2063
**系统能力**:SystemCapability.Location.Location.Core
L
liu-binjun 已提交
2064

L
liu-binjun 已提交
2065
**系统API**:此接口为系统接口。
L
liu-binjun 已提交
2066

L
liu-binjun 已提交
2067
**参数**
L
liu-binjun 已提交
2068

L
liu-binjun 已提交
2069 2070 2071
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | config |  [LocationMockConfig](#locationmockconfig) | 是 | 指示位置模拟的配置参数,包含模拟位置上报的时间间隔和模拟位置数组。 |
L
liu-binjun 已提交
2072

L
liu-binjun 已提交
2073
**错误码**
L
liu-binjun 已提交
2074

L
liu-binjun 已提交
2075
以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)
L
liu-binjun 已提交
2076

L
liu-binjun 已提交
2077 2078 2079 2080
| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
|3301000 | Location service is unavailable.                                            |
|3301100 | The location switch is off.|
L
liu-binjun 已提交
2081

L
liu-binjun 已提交
2082
**示例**
L
liu-binjun 已提交
2083

L
liu-binjun 已提交
2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
  let locations = [
      {"latitude": 30.12, "longitude": 120.11, "altitude": 123, "accuracy": 1, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 1000000000, "additionSize": 0, "isFromMock": true},
      {"latitude": 31.13, "longitude": 121.11, "altitude": 123, "accuracy": 2, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 2000000000, "additionSize": 0, "isFromMock": true},
      {"latitude": 32.14, "longitude": 122.11, "altitude": 123, "accuracy": 3, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 3000000000, "additionSize": 0, "isFromMock": true},
      {"latitude": 33.15, "longitude": 123.11, "altitude": 123, "accuracy": 4, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 4000000000, "additionSize": 0, "isFromMock": true},
      {"latitude": 34.16, "longitude": 124.11, "altitude": 123, "accuracy": 5, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 5000000000, "additionSize": 0, "isFromMock": true}
  ];
  let config = {"timeInterval": 5, "locations": locations};
  try {
      geoLocationManager.enableLocationMock();
      geoLocationManager.setMockedLocations(config);
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```
L
liu-binjun 已提交
2101 2102


L
liu-binjun 已提交
2103
## geoLocationManager.enableReverseGeocodingMock
L
liu-binjun 已提交
2104

L
liu-binjun 已提交
2105 2106 2107
enableReverseGeocodingMock(): void;

使能逆地理编码模拟功能。
L
liu-binjun 已提交
2108 2109 2110

**系统能力**:SystemCapability.Location.Location.Core

L
liu-binjun 已提交
2111
**系统API**:此接口为系统接口。
L
liu-binjun 已提交
2112

L
liu-binjun 已提交
2113
**错误码**
L
liu-binjun 已提交
2114

L
liu-binjun 已提交
2115
以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)
L
liu-binjun 已提交
2116

L
liu-binjun 已提交
2117 2118 2119
| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
|3301000 | Location service is unavailable.                                            |
L
liu-binjun 已提交
2120

L
liu-binjun 已提交
2121
**示例**
L
liu-binjun 已提交
2122

L
liu-binjun 已提交
2123 2124 2125 2126 2127 2128 2129 2130
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
  try {
      geoLocationManager.enableReverseGeocodingMock();
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```
L
liu-binjun 已提交
2131 2132


L
liu-binjun 已提交
2133
## geoLocationManager.disableReverseGeocodingMock
L
liu-binjun 已提交
2134

L
liu-binjun 已提交
2135
disableReverseGeocodingMock(): void;
L
liu-binjun 已提交
2136

L
liu-binjun 已提交
2137
去使能逆地理编码模拟功能。
L
liu-binjun 已提交
2138

L
liu-binjun 已提交
2139
**系统能力**:SystemCapability.Location.Location.Core
L
liu-binjun 已提交
2140

L
liu-binjun 已提交
2141
**系统API**:此接口为系统接口。
L
liu-binjun 已提交
2142

L
liu-binjun 已提交
2143
**错误码**
L
liu-binjun 已提交
2144

L
liu-binjun 已提交
2145
以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)
L
liu-binjun 已提交
2146

L
liu-binjun 已提交
2147 2148 2149
| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
|3301000 | Location service is unavailable.                                            |
L
liu-binjun 已提交
2150

L
liu-binjun 已提交
2151
**示例**
L
liu-binjun 已提交
2152

L
liu-binjun 已提交
2153 2154 2155 2156 2157 2158 2159 2160
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
  try {
      geoLocationManager.disableReverseGeocodingMock();
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```
L
liu-binjun 已提交
2161 2162


L
liu-binjun 已提交
2163
## geoLocationManager.setReverseGeocodingMockInfo
L
liu-binjun 已提交
2164

L
liu-binjun 已提交
2165
setReverseGeocodingMockInfo(mockInfos: Array&lt;ReverseGeocodingMockInfo&gt;): void;
L
liu-binjun 已提交
2166

L
liu-binjun 已提交
2167
设置逆地理编码模拟功能的配置信息,包含了位置和地名的对应关系,后续进行逆地理编码查询时如果位置信息位于配置信息中,就返回对应的地名。
L
liu-binjun 已提交
2168

2169
该接口需要在调用[geoLocationManager.enableReverseGeocodingMock](#geolocationmanagerenablereversegeocodingmock)之后才能调用。
L
liu-binjun 已提交
2170

L
liu-binjun 已提交
2171
**系统能力**:SystemCapability.Location.Location.Core
L
liu-binjun 已提交
2172

L
liu-binjun 已提交
2173
**系统API**:此接口为系统接口。
L
liu-binjun 已提交
2174

L
liu-binjun 已提交
2175
**参数**
L
liu-binjun 已提交
2176

L
liu-binjun 已提交
2177 2178 2179
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | mockInfos | Array&lt;[ReverseGeocodingMockInfo](#reversegeocodingmockinfo)&gt; | 是 | 指示逆地理编码模拟功能的配置参数数组。逆地理编码模拟功能的配置参数包含了一个位置和一个地名。 |
L
liu-binjun 已提交
2180

L
liu-binjun 已提交
2181
**错误码**
L
liu-binjun 已提交
2182

L
liu-binjun 已提交
2183
以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)
L
liu-binjun 已提交
2184

L
liu-binjun 已提交
2185 2186 2187
| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
|3301000 | Location service is unavailable.                                            |
L
liu-binjun 已提交
2188

L
liu-binjun 已提交
2189
**示例**
L
liu-binjun 已提交
2190

L
liu-binjun 已提交
2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
  let mockInfos = [
      {"location": {"locale": "zh", "latitude": 30.12, "longitude": 120.11, "maxItems": 1}, "geoAddress": {"locale": "zh", "latitude": 30.12, "longitude": 120.11, "maxItems": 1, "isFromMock": true}},
      {"location": {"locale": "zh", "latitude": 31.12, "longitude": 121.11, "maxItems": 1}, "geoAddress": {"locale": "zh", "latitude": 31.12, "longitude": 121.11, "maxItems": 1, "isFromMock": true}},
      {"location": {"locale": "zh", "latitude": 32.12, "longitude": 122.11, "maxItems": 1}, "geoAddress": {"locale": "zh", "latitude": 32.12, "longitude": 122.11, "maxItems": 1, "isFromMock": true}},
      {"location": {"locale": "zh", "latitude": 33.12, "longitude": 123.11, "maxItems": 1}, "geoAddress": {"locale": "zh", "latitude": 33.12, "longitude": 123.11, "maxItems": 1, "isFromMock": true}},
      {"location": {"locale": "zh", "latitude": 34.12, "longitude": 124.11, "maxItems": 1}, "geoAddress": {"locale": "zh", "latitude": 34.12, "longitude": 124.11, "maxItems": 1, "isFromMock": true}},
  ];
  try {
      geoLocationManager.enableReverseGeocodingMock();
      geoLocationManager.setReverseGeocodingMockInfo(mockInfos);
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```
L
liu-binjun 已提交
2207 2208


L
liu-binjun 已提交
2209
## geoLocationManager.isLocationPrivacyConfirmed
L
liu-binjun 已提交
2210

L
liu-binjun 已提交
2211
isLocationPrivacyConfirmed(type: LocationPrivacyType): boolean;
L
liu-binjun 已提交
2212

L
liu-binjun 已提交
2213
查询用户是否同意定位服务隐私申明,是否同意启用定位服务。只有系统应用才能调用。
L
liu-binjun 已提交
2214

L
liu-binjun 已提交
2215
**系统API**:此接口为系统接口。
L
liu-binjun 已提交
2216

L
liu-binjun 已提交
2217
**系统能力**:SystemCapability.Location.Location.Core
L
liu-binjun 已提交
2218

L
liu-binjun 已提交
2219
**参数**
L
liu-binjun 已提交
2220

L
liu-binjun 已提交
2221 2222 2223
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | type |  [LocationPrivacyType](#locationprivacytype)| 是 | 指定隐私申明场景,例如开机向导中的隐私申明、开启网络定位功能时弹出的隐私申明等。 |
L
liu-binjun 已提交
2224

L
liu-binjun 已提交
2225
**返回值**
L
liu-binjun 已提交
2226

L
liu-binjun 已提交
2227 2228 2229
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | boolean  | boolean | NA | 表示用户是否同意定位服务隐私申明。 |
L
liu-binjun 已提交
2230

L
liu-binjun 已提交
2231
**错误码**
L
liu-binjun 已提交
2232

L
liu-binjun 已提交
2233
以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)
L
liu-binjun 已提交
2234

L
liu-binjun 已提交
2235 2236 2237
| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
|3301000 | Location service is unavailable.                                            |
L
liu-binjun 已提交
2238

L
liu-binjun 已提交
2239
**示例**
L
liu-binjun 已提交
2240

L
liu-binjun 已提交
2241 2242 2243 2244 2245 2246 2247 2248
  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
  try {
      let isConfirmed = geoLocationManager.isLocationPrivacyConfirmed(1);
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```
L
liu-binjun 已提交
2249 2250


L
liu-binjun 已提交
2251
## geoLocationManager.setLocationPrivacyConfirmStatus
L
liu-binjun 已提交
2252

L
liu-binjun 已提交
2253
setLocationPrivacyConfirmStatus(type: LocationPrivacyType, isConfirmed: boolean): void;
L
liu-binjun 已提交
2254

L
liu-binjun 已提交
2255
设置用户勾选定位服务隐私申明的状态,记录用户是否同意启用定位服务。只有系统应用才能调用。
L
liu-binjun 已提交
2256

L
liu-binjun 已提交
2257
**系统API**:此接口为系统接口。
L
liu-binjun 已提交
2258 2259

**需要权限**:ohos.permission.MANAGE_SECURE_SETTINGS
L
liu-binjun 已提交
2260 2261 2262

**系统能力**:SystemCapability.Location.Location.Core

L
liu-binjun 已提交
2263
**参数**
L
liu-binjun 已提交
2264

L
liu-binjun 已提交
2265 2266 2267 2268
  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | type | [LocationPrivacyType](#locationprivacytype) | 是 | 指定隐私申明场景,例如开机向导中的隐私申明、开启网络定位功能时弹出的隐私申明等。 |
  | isConfirmed | boolean | 是 | 表示用户是否同意定位服务隐私申明。 |
L
liu-binjun 已提交
2269

L
liu-binjun 已提交
2270
**错误码**
L
liu-binjun 已提交
2271

L
liu-binjun 已提交
2272
以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)
L
liu-binjun 已提交
2273

L
liu-binjun 已提交
2274 2275 2276
| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
|3301000 | Location service is unavailable.                                            |
L
liu-binjun 已提交
2277

L
liu-binjun 已提交
2278 2279 2280 2281 2282 2283 2284 2285 2286 2287
**示例**

  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
  try {
      geoLocationManager.setLocationPrivacyConfirmStatus(1, true);
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```
L
liu-binjun 已提交
2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337


## geoLocationManager.getLocatingRequiredData<sup>10+</sup>

getLocatingRequiredData(config: LocatingRequiredDataConfig): Promise&lt;Array&lt;LocatingRequiredData&gt;&gt;;

单次获取定位业务所需数据,包含WiFi蓝牙扫描信息,使用Promise方式异步返回结果。

**需要权限**:ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION

**系统能力**:SystemCapability.Location.Location.Core

**系统API**:此接口为系统接口。

**参数**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | config | [LocatingRequiredDataConfig](#locatingrequireddataconfig10) | 是 | 表示获取定位所需数据时的配置参数。 |

**返回值**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | Promise&lt;Array&lt;[LocatingRequiredData](#locatingrequireddata10)&gt;&gt;  | [LocatingRequiredData](#locatingrequireddata10) | NA | 用来接收定位业务所需数据,包含WiFi蓝牙扫描信息。 |

**错误码**

以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)

| 错误码ID | 错误信息 |
| -------- | ---------------------------------------- |
|3301800  | Failed to start WiFi or Bluetooth scanning.                    |

**示例**

  ```ts
  import geoLocationManager from '@ohos.geoLocationManager';
  let config = {'type': 1, 'needStartScan': true, 'scanInterval': 10000};
  try {
      geoLocationManager.getLocatingRequiredData(config).then((result) => {
          console.log('getLocatingRequiredData return: ' + JSON.stringify(result));
      })  
      .catch((error) => {
          console.log('promise, getLocatingRequiredData: error=' + JSON.stringify(error));
      });
  } catch (err) {
      console.error("errCode:" + err.code + ",errMessage:" + err.message);
  }
  ```