• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.geoLocationManager (位置服务)
2
3位置服务提供GNSS定位、网络定位、地理编码、逆地理编码、国家码和地理围栏等基本功能。
4
5> **说明:**
6>
7> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8
9## 申请权限
10
11应用在使用系统能力前,需要检查是否已经获取用户授权访问设备位置信息。如未获得授权,可以向用户申请需要的位置权限,申请方式请参考下文。
12
13系统提供的定位权限有:
14- ohos.permission.LOCATION
15
16- ohos.permission.APPROXIMATELY_LOCATION
17
18- ohos.permission.LOCATION_IN_BACKGROUND
19
20访问设备的位置信息,必须申请权限,并且获得用户授权。
21
22API9之前的版本,申请ohos.permission.LOCATION即可。
23
24API9及之后的版本,需要申请ohos.permission.APPROXIMATELY_LOCATION或者同时申请ohos.permission.APPROXIMATELY_LOCATIONohos.permission.LOCATION;无法单独申请ohos.permission.LOCATION25
26| 使用的API版本 | 申请位置权限 | 申请结果 | 位置的精确度 |
27| -------- | -------- | -------- | -------- |
28| 小于9 | ohos.permission.LOCATION | 成功 | 获取到精准位置,精准度在米级别。 |
29| 大于等于9 | ohos.permission.LOCATION | 失败 | 无法获取位置。 |
30| 大于等于9 | ohos.permission.APPROXIMATELY_LOCATION | 成功 | 获取到模糊位置,精确度为5公里。 |
31| 大于等于9 | ohos.permission.APPROXIMATELY_LOCATIONohos.permission.LOCATION | 成功 | 获取到精准位置,精准度在米级别。 |
32
33如果应用在后台运行时也需要访问设备位置,除需要将应用声明为允许后台运行外,还必须申请ohos.permission.LOCATION_IN_BACKGROUND权限,这样应用在切入后台之后,系统可以继续上报位置信息。
34
35开发者可以在应用配置文件中声明所需要的权限,具体可参考[授权申请指导](../../security/accesstoken-guidelines.md)。
36
37
38## 导入模块
39
40```ts
41import geoLocationManager from '@ohos.geoLocationManager';
42```
43
44
45## ReverseGeoCodeRequest
46
47逆地理编码请求接口。
48
49**系统能力**:SystemCapability.Location.Location.Geocoder
50
51| 名称 | 类型 | 可读 | 可写 | 说明 |
52| -------- | -------- | -------- | -------- | -------- |
53| locale | string | 是 | 是 | 指定位置描述信息的语言,“zh”代表中文,“en”代表英文。 |
54| latitude | number | 是 | 是 | 表示纬度信息,正值表示北纬,负值表示南纬。取值范围为-90到90。 |
55| longitude | number | 是 | 是 | 表示经度信息,正值表示东经,负值表示西经。取值范围为-180到180。 |
56| maxItems | number | 是 | 是 | 指定返回位置信息的最大个数。取值范围为大于等于0,推荐该值小于10。 |
57
58
59## GeoCodeRequest
60
61地理编码请求接口。
62
63**系统能力**:SystemCapability.Location.Location.Geocoder
64
65| 名称 | 类型 | 可读|可写 | 说明 |
66| -------- | -------- | -------- | -------- | -------- |
67| locale | string | 是 | 是 | 表示位置描述信息的语言,“zh”代表中文,“en”代表英文。 |
68| description | string | 是 | 是 | 表示位置信息描述,如“上海市浦东新区xx路xx号”。 |
69| maxItems | number | 是 | 是 | 表示返回位置信息的最大个数。取值范围为大于等于0,推荐该值小于10。 |
70| minLatitude | number | 是 | 是 | 表示最小纬度信息,与下面三个参数一起,表示一个经纬度范围。取值范围为-90到90。 |
71| minLongitude | number | 是 | 是 | 表示最小经度信息。取值范围为-180到180。 |
72| maxLatitude | number | 是 | 是 | 表示最大纬度信息。取值范围为-90到90。 |
73| maxLongitude | number | 是 | 是 | 表示最大经度信息。取值范围为-180到180。 |
74
75
76## GeoAddress
77
78地理编码类型。
79
80**系统能力**:SystemCapability.Location.Location.Geocoder
81
82| 名称 | 类型 | 可读|可写 | 说明 |
83| -------- | -------- | -------- | -------- | -------- |
84| latitude | number | 是 | 否  | 表示纬度信息,正值表示北纬,负值表示南纬。取值范围为-90到90。 |
85| longitude | number | 是 | 否  | 表示经度信息,正值表示东经,负值表是西经。取值范围为-180到180。 |
86| locale | string | 是 | 否  | 表示位置描述信息的语言,“zh”代表中文,“en”代表英文。 |
87| placeName | string | 是 | 否  | 表示地区信息。 |
88| countryCode | string | 是 | 否  | 表示国家码信息。 |
89| countryName | string| 是 | 否 | 表示国家信息。 |
90| administrativeArea | string | 是 | 否 | 表示省份区域信息。 |
91| subAdministrativeArea | string | 是 | 否 | 表示子区域信息。 |
92| locality | string | 是 | 否 | 表示城市信息。 |
93| subLocality | string | 是 | 否 | 表示子城市信息。 |
94| roadName | string | 是 | 否 |表示路名信息。 |
95| subRoadName | string | 是 | 否 | 表示子路名信息。 |
96| premises | string| 是 | 否|表示门牌号信息。 |
97| postalCode | string | 是 | 否 | 表示邮政编码信息。 |
98| phoneNumber | string | 是 | 否 | 表示联系方式信息。 |
99| addressUrl | string | 是 | 否 | 表示位置信息附件的网址信息。 |
100| descriptions | Array<string> | 是 | 否 | 表示附加的描述信息。 |
101| descriptionsSize | number | 是 | 否 | 表示附加的描述信息数量。取值范围为大于等于0,推荐该值小于10。 |
102| isFromMock | Boolean | 是 | 否 | 表示地名信息是否来自于逆地理编码模拟功能。<br>**系统API**:此接口为系统接口。 |
103
104
105## LocationRequest
106
107位置信息请求类型。
108
109**系统能力**:SystemCapability.Location.Location.Core
110
111| 名称 | 类型 | 可读|可写 | 说明 |
112| -------- | -------- | -------- | -------- | -------- |
113| priority | [LocationRequestPriority](#locationrequestpriority) | 是 | 是 | 表示优先级信息。当scenario取值为UNSET时,priority参数生效,否则priority参数不生效;当scenario和priority均取值为UNSET时,无法发起定位请求。取值范围见[LocationRequestPriority](#locationrequestpriority)的定义。 |
114| scenario | [LocationRequestScenario](#locationrequestscenario) | 是 | 是 | 表示场景信息。当scenario取值为UNSET时,priority参数生效,否则priority参数不生效;当scenario和priority均取值为UNSET时,无法发起定位请求。取值范围见[LocationRequestScenario](#locationrequestscenario)的定义。 |
115| timeInterval | number | 是 | 是 | 表示上报位置信息的时间间隔,单位是秒。默认值为1,取值范围为大于等于0。 |
116| distanceInterval | number | 是 | 是 | 表示上报位置信息的距离间隔。单位是米,默认值为0,取值范围为大于等于0。 |
117| maxAccuracy | number | 是 | 是 | 表示精度信息,单位是米。仅在精确位置功能场景下有效,模糊位置功能生效场景下该字段无意义。默认值为0,取值范围为大于等于0。 |
118
119
120## CurrentLocationRequest
121
122当前位置信息请求类型。
123
124**系统能力**:SystemCapability.Location.Location.Core
125
126| 名称 | 类型 | 可读|可写 | 说明 |
127| -------- | -------- | -------- | -------- | -------- |
128| priority | [LocationRequestPriority](#locationrequestpriority) | 是 | 是 | 表示优先级信息。当scenario取值为UNSET时,priority参数生效,否则priority参数不生效;当scenario和priority均取值为UNSET时,无法发起定位请求。取值范围见[LocationRequestPriority](#locationrequestpriority)的定义。|
129| scenario | [LocationRequestScenario](#locationrequestscenario) | 是 | 是 | 表示场景信息。当scenario取值为UNSET时,priority参数生效,否则priority参数不生效;当scenario和priority均取值为UNSET时,无法发起定位请求。取值范围见[LocationRequestScenario](#locationrequestscenario)的定义。 |
130| maxAccuracy | number | 是 | 是| 表示精度信息,单位是米。仅在精确位置功能场景下有效,模糊位置功能生效场景下该字段无意义。默认值为0,取值范围为大于等于0。 |
131| timeoutMs | number | 是 | 是 | 表示超时时间,单位是毫秒,最小为1000毫秒。取值范围为大于等于1000。 |
132
133
134## SatelliteStatusInfo
135
136卫星状态信息。
137
138**系统能力**:SystemCapability.Location.Location.Gnss
139
140| 名称 | 类型 | 可读|可写 | 说明 |
141| -------- | -------- | -------- | -------- | -------- |
142| satellitesNumber | number | 是 | 否 | 表示卫星个数。取值范围为大于等于0。 |
143| satelliteIds | Array&lt;number&gt; | 是 | 否 | 表示每个卫星的ID,数组类型。取值范围为大于等于0。 |
144| carrierToNoiseDensitys | Array&lt;number&gt; | 是 | 否 | 表示载波噪声功率谱密度比,即cn0。取值范围为大于0。 |
145| altitudes | Array&lt;number&gt; | 是 | 否 | 表示卫星高度角信息。单位是“度”,取值范围为-90到90。 |
146| azimuths | Array&lt;number&gt; | 是 | 否 | 表示方位角。单位是“度”,取值范围为0到360。 |
147| carrierFrequencies | Array&lt;number&gt; | 是 | 否 | 表示载波频率。单位是Hz,取值范围为大于等于0。 |
148
149
150## CachedGnssLocationsRequest
151
152请求订阅GNSS缓存位置上报功能接口的配置参数。
153
154**系统能力**:SystemCapability.Location.Location.Gnss
155
156| 名称 | 类型 | 可读|可写 | 说明 |
157| -------- | -------- | -------- | -------- | -------- |
158| reportingPeriodSec | number | 是 | 是 | 表示GNSS缓存位置上报的周期,单位是毫秒。取值范围为大于0。 |
159| wakeUpCacheQueueFull | boolean | 是 | 是  | true表示GNSS芯片底层缓存队列满之后会主动唤醒AP芯片,并把缓存位置上报给应用。<br/>false表示GNSS芯片底层缓存队列满之后不会主动唤醒AP芯片,会把缓存位置直接丢弃。 |
160
161
162## Geofence
163
164GNSS围栏的配置参数。目前只支持圆形围栏。
165
166**系统能力**:SystemCapability.Location.Location.Geofence
167
168| 名称 | 类型 | 可读|可写 | 说明 |
169| -------- | -------- | -------- | -------- | -------- |
170| latitude | number | 是 | 是 |表示纬度。取值范围为-90到90。 |
171| longitude | number | 是 |是 | 表示经度。取值范围为-180到180。 |
172| radius | number | 是 |是 | 表示圆形围栏的半径。单位是米,取值范围为大于0。 |
173| expiration | number | 是 |是 | 围栏存活的时间,单位是毫秒。取值范围为大于0。 |
174
175
176## GeofenceRequest
177
178请求添加GNSS围栏消息中携带的参数,包括定位优先级、定位场景和围栏信息。
179
180**系统能力**:SystemCapability.Location.Location.Geofence
181
182| 名称 | 类型 | 可读|可写 | 说明 |
183| -------- | -------- | -------- | -------- | -------- |
184| scenario | [LocationRequestScenario](#locationrequestscenario) | 是 | 是  |  表示定位场景。 |
185| geofence |  [Geofence](#geofence)| 是 | 是  |  表示围栏信息。 |
186
187
188## LocationCommand
189
190扩展命令结构体。
191
192**系统能力**:SystemCapability.Location.Location.Core
193
194| 名称 | 类型 | 可读|可写 | 说明 |
195| -------- | -------- | -------- | -------- | -------- |
196| scenario | [LocationRequestScenario](#locationrequestscenario)  | 是 | 是  | 表示定位场景。 |
197| command | string | 是 | 是  | 扩展命令字符串。 |
198
199
200## Location
201
202位置信息类型。
203
204**系统能力**:SystemCapability.Location.Location.Core
205
206| 名称 | 类型 | 可读|可写 | 说明 |
207| -------- | -------- | -------- | -------- | -------- |
208| latitude | number| 是 | 否 | 表示纬度信息,正值表示北纬,负值表示南纬。取值范围为-90到90。 |
209| longitude | number| 是 | 否 | 表示经度信息,正值表示东经,负值表是西经。取值范围为-180到180。 |
210| altitude | number | 是 | 否 | 表示高度信息,单位米。 |
211| accuracy | number | 是 | 否 | 表示精度信息,单位米。 |
212| speed | number | 是 | 否 |表示速度信息,单位米每秒。 |
213| timeStamp | number | 是 | 否 | 表示位置时间戳,UTC格式。 |
214| direction | number | 是 | 否 | 表示航向信息。单位是“度”,取值范围为0到360。 |
215| timeSinceBoot | number | 是 | 否 | 表示位置时间戳,开机时间格式。 |
216| additions | Array&lt;string&gt; | 是 | 否 | 附加信息。 |
217| additionSize | number | 是 | 否 | 附加信息数量。取值范围为大于等于0。  |
218| isFromMock | Boolean | 是 | 否 | 表示位置信息是否来自于位置模拟功能。<br>**系统API**:此接口为系统接口。 |
219
220
221## ReverseGeocodingMockInfo
222
223逆地理编码模拟功能的配置信息,包含一个位置信息和一个地名信息。
224
225**系统能力**:SystemCapability.Location.Location.Core
226
227**系统API**:此接口为系统接口。
228
229| 名称 | 类型 | 可读|可写 | 说明 |
230| -------- | -------- | -------- | -------- | -------- |
231| location |  [ReverseGeoCodeRequest](#reversegeocoderequest) | 是 | 是 | 表示经纬度信息。 |
232| geoAddress |  [GeoAddress](#geoaddress) | 是 | 是 |表示地名信息。 |
233
234
235## LocationMockConfig
236
237位置模拟功能的配置参数,包含了模拟位置上报的时间间隔和模拟位置数组。
238
239**系统能力**:SystemCapability.Location.Location.Core
240
241**系统API**:此接口为系统接口。
242
243| 名称 | 类型 | 可读|可写 | 说明 |
244| -------- | -------- | -------- | -------- | -------- |
245| timeInterval | number | 是 | 是 | 表示模拟位置上报的时间间隔,单位是秒。 |
246| locations | Array&lt;[Location](#location)&gt; | 是 | 是 | 表示模拟位置数组。 |
247
248
249## CountryCode
250
251国家码信息结构体,包含国家码字符串和国家码的来源信息。
252
253**系统能力**:SystemCapability.Location.Location.Core
254
255| 名称 | 类型 | 可读|可写 | 说明 |
256| -------- | -------- | -------- | -------- | -------- |
257| country | string | 是 | 否 | 表示国家码字符串。 |
258| type |  [CountryCodeType](#countrycodetype) | 是 | 否 | 表示国家码信息来源。 |
259
260
261## LocatingRequiredDataConfig<sup>10+</sup>
262
263获取定位所需数据时的配置参数。
264
265**系统能力**:SystemCapability.Location.Location.Core
266
267**系统API**:此接口为系统接口。
268
269| 名称 | 类型 | 可读|可写 | 说明 |
270| -------- | -------- | -------- | -------- | -------- |
271| type | [LocatingRequiredDataType](#locatingrequireddatatype10) | 是 | 是 | 表示请求获取数据的类型。 |
272| needStartScan |  boolean | 是 | 是 | 表示是否需要发起扫描。 |
273| scanInterval |  number | 是 | 是 | 表示扫描的时间间隔。单位是毫秒,默认值是10000毫秒,取值范围为大于0。 |
274| scanTimeout |  number | 是 | 是 | 表示单次扫描的超时时间。单位是毫秒,默认值是10000毫秒,取值范围为大于0小于600000。 |
275
276
277## LocatingRequiredData<sup>10+</sup>
278
279表示定位业务所需的数据,包含WiFi或蓝牙扫描结果,APP拿到这些数据之后可以用于网络定位等业务。
280
281**系统能力**:SystemCapability.Location.Location.Core
282
283**系统API**:此接口为系统接口。
284
285| 名称 | 类型 | 可读|可写 | 说明 |
286| -------- | -------- | -------- | -------- | -------- |
287| wifiData | [WifiScanInfo](#wifiscaninfo10) | 是 | 否 | 表示WiFi扫描结果。 |
288| bluetoothData |  [BluetoothScanInfo](#bluetoothscaninfo10) | 是 | 否 | 表示蓝牙扫描结果。 |
289
290
291## WifiScanInfo<sup>10+</sup>
292
293WiFi扫描信息,包含扫描到的WiFi热点的ssid、bssid和rssi等信息。
294
295**系统能力**:SystemCapability.Location.Location.Core
296
297**系统API**:此接口为系统接口。
298
299| 名称 | 类型 | 可读|可写 | 说明 |
300| -------- | -------- | -------- | -------- | -------- |
301| ssid | string | 是 | 否 | WiFi热点的SSID,编码格式为UTF-8。 |
302| bssid | string | 是 | 否 | WiFi热点的BSSID。 |
303| rssi | number | 是 | 否 | WiFi热点的信号强度(dBm)。 |
304| frequency | number | 是 | 否 | WiFi热点的频率。 |
305| timestamp | number | 是 | 否 | 时间戳。 |
306
307
308## BluetoothScanInfo<sup>10+</sup>
309
310蓝牙扫描信息。
311
312**系统能力**:SystemCapability.Location.Location.Core
313
314**系统API**:此接口为系统接口。
315
316| 名称 | 类型 | 可读|可写 | 说明 |
317| -------- | -------- | -------- | -------- | -------- |
318| deviceName | string | 是 | 否 | 蓝牙设备名称。 |
319| macAddress | string | 是 | 否 | 蓝牙设备的MAC地址。 |
320| rssi | number | 是 | 否 | 蓝牙设备的信号强度(dBm)。 |
321| timestamp | number | 是 | 否 | 时间戳。 |
322
323
324## LocationRequestPriority
325
326位置请求中位置信息优先级设置。
327
328**系统能力**:SystemCapability.Location.Location.Core
329
330| 名称 | 值 | 说明 |
331| -------- | -------- | -------- |
332| UNSET | 0x200 | 表示未设置优先级,表示[LocationRequestPriority](#locationrequestpriority)无效。 |
333| ACCURACY | 0x201 | 表示精度优先。<br/>定位精度优先策略主要以GNSS定位技术为主,在开阔场景下可以提供米级的定位精度,具体性能指标依赖用户设备的定位硬件能力,但在室内等强遮蔽定位场景下,无法提供准确的位置服务。 |
334| LOW_POWER | 0x202 | 表示低功耗优先。<br/>低功耗定位优先策略主要使用基站定位和WLAN、蓝牙定位技术,也可以同时提供室内和户外场景下的位置服务,因为其依赖周边基站、可见WLAN、蓝牙设备的分布情况,定位结果的精度波动范围较大,如果对定位结果精度要求不高,或者使用场景多在有基站、可见WLAN、蓝牙设备高密度分布的情况下,推荐使用,可以有效节省设备功耗。 |
335| FIRST_FIX | 0x203 | 表示快速获取位置优先,如果应用希望快速拿到一个位置,可以将优先级设置为该字段。<br/>快速定位优先策略会同时使用GNSS定位、基站定位和WLAN、蓝牙定位技术,以便室内和户外场景下,通过此策略都可以获得位置结果,当各种定位技术都有提供位置结果时,系统会选择其中精度较好的结果返回给应用。因为对各种定位技术同时使用,对设备的硬件资源消耗较大,功耗也较大。 |
336
337
338## LocationRequestScenario
339
340  位置请求中定位场景设置。
341
342**系统能力**:SystemCapability.Location.Location.Core
343
344| 名称 | 值 | 说明 |
345| -------- | -------- | -------- |
346| UNSET | 0x300 | 表示未设置场景信息。<br/>表示[LocationRequestScenario](#locationrequestscenario)字段无效。 |
347| NAVIGATION | 0x301 | 表示导航场景。<br/>适用于在户外定位设备实时位置的场景,如车载、步行导航。<br/>在此场景下,为保证系统提供位置结果精度最优,主要使用GNSS定位技术提供定位服务<br/>此场景默认以最小1秒间隔上报定位结果。 |
348| TRAJECTORY_TRACKING | 0x302 | 表示运动轨迹记录场景。<br/>适用于记录用户位置轨迹的场景,如运动类应用记录轨迹功能。主要使用GNSS定位技术提供定位服务。<br/>此场景默认以最小1秒间隔上报定位结果。 |
349| CAR_HAILING | 0x303 | 表示打车场景。<br/>适用于用户出行打车时定位当前位置的场景,如网约车类应用。<br/>此场景默认以最小1秒间隔上报定位结果。 |
350| DAILY_LIFE_SERVICE | 0x304 | 表示日常服务使用场景。<br/>适用于不需要定位用户精确位置的使用场景,如新闻资讯、网购、点餐类应用,做推荐、推送时定位用户大致位置即可。<br/>此场景默认以最小1秒间隔上报定位结果。 |
351| NO_POWER | 0x305 | 表示无功耗功场景,这种场景下不会主动触发定位,会在其他应用定位时,才给当前应用返回位置。 |
352
353
354## LocationPrivacyType
355
356定位服务隐私协议类型。
357
358**系统能力**:SystemCapability.Location.Location.Core
359
360**系统API**:此接口为系统接口。
361
362| 名称 | 值 | 说明 |
363| -------- | -------- | -------- |
364| OTHERS | 0 | 其他场景。预留字段。 |
365| STARTUP | 1 | 开机向导场景下的隐私协议。在开机时弹出协议,提醒用户阅读并选择是否授权。 |
366| CORE_LOCATION | 2 | 开启网络定位时弹出的隐私协议。 |
367
368
369## CountryCodeType
370
371国家码来源类型。
372
373**系统能力**:SystemCapability.Location.Location.Core
374
375| 名称 | 值 | 说明 |
376| -------- | -------- | -------- |
377| COUNTRY_CODE_FROM_LOCALE | 1 | 从全球化模块的语言配置信息中获取到的国家码。 |
378| COUNTRY_CODE_FROM_SIM | 2 | 从SIM卡中获取到的国家码。 |
379| COUNTRY_CODE_FROM_LOCATION | 3 | 基于用户的位置信息,通过逆地理编码查询到的国家码。 |
380| COUNTRY_CODE_FROM_NETWORK | 4 | 从蜂窝网络注册信息中获取到的国家码。 |
381
382
383## LocatingRequiredDataType<sup>10+</sup>
384
385定位业务所需数据的类型。
386
387**系统能力**:SystemCapability.Location.Location.Core
388
389**系统API**:此接口为系统接口。
390
391| 名称 | 值 | 说明 |
392| -------- | -------- | -------- |
393| WIFI  | 1 | 表示WiFi扫描信息。 |
394| BLUETOOTH | 2 | 表示蓝牙扫描信息。 |
395
396
397## geoLocationManager.on('locationChange')
398
399on(type: 'locationChange', request: LocationRequest, callback: Callback&lt;Location&gt;): void
400
401开启位置变化订阅,并发起定位请求。
402
403**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
404
405**系统能力**:SystemCapability.Location.Location.Core
406
407**参数:**
408
409  | 参数名 | 类型 | 必填 | 说明 |
410  | -------- | -------- | -------- | -------- |
411  | type | string | 是 | 设置事件类型。type为“locationChange”,表示位置变化。 |
412  | request |  [LocationRequest](#locationrequest) | 是 | 设置位置请求参数。 |
413  | callback | Callback&lt;[Location](#location)&gt; | 是 | 接收位置变化状态变化监听。 |
414
415**错误码**:
416
417以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
418
419| 错误码ID | 错误信息 |
420| -------- | ---------------------------------------- |
421|3301000 | Location service is unavailable.                                            |
422|3301100 | The location switch is off.                                                 |
423|3301200 | Failed to obtain the geographical location.                                       |
424
425**示例**
426
427  ```ts
428  import geoLocationManager from '@ohos.geoLocationManager';
429  import BusinessError from "@ohos.base";
430  let requestInfo:geoLocationManager.LocationRequest = {'priority': geoLocationManager.LocationRequestPriority.FIRST_FIX, 'scenario': geoLocationManager.LocationRequestScenario.UNSET, 'timeInterval': 1, 'distanceInterval': 0, 'maxAccuracy': 0};
431  let locationChange = (location:geoLocationManager.Location):void => {
432      console.log('locationChanger: data: ' + JSON.stringify(location));
433  };
434  try {
435      geoLocationManager.on('locationChange', requestInfo, locationChange);
436  } catch (err) {
437      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
438  }
439
440  ```
441
442
443## geoLocationManager.off('locationChange')
444
445off(type: 'locationChange', callback?: Callback&lt;Location&gt;): void
446
447关闭位置变化订阅,并删除对应的定位请求。
448
449**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
450
451**系统能力**:SystemCapability.Location.Location.Core
452
453**参数:**
454
455  | 参数名 | 类型 | 必填 | 说明 |
456  | -------- | -------- | -------- | -------- |
457  | type | string | 是 | 设置事件类型。type为“locationChange”,表示位置变化。 |
458  | callback | Callback&lt;[Location](#location)&gt; | 否 | 需要取消订阅的回调函数。若无此参数,则取消当前类型的所有订阅。 |
459
460**错误码**:
461
462以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
463
464| 错误码ID | 错误信息 |
465| -------- | ---------------------------------------- |
466|3301000 | Location service is unavailable.                                            |
467|3301100 | The location switch is off.                                                 |
468|3301200 | Failed to obtain the geographical location.                                       |
469
470**示例**
471
472  ```ts
473  import geoLocationManager from '@ohos.geoLocationManager';
474  import BusinessError from "@ohos.base";
475  let requestInfo:geoLocationManager.LocationRequest = {'priority': geoLocationManager.LocationRequestPriority.FIRST_FIX, 'scenario': geoLocationManager.LocationRequestScenario.UNSET, 'timeInterval': 1, 'distanceInterval': 0, 'maxAccuracy': 0};
476  let locationChange = (location:geoLocationManager.Location):void => {
477    console.log('locationChanger: data: ' + JSON.stringify(location));
478  };
479  try {
480      geoLocationManager.on('locationChange', requestInfo, locationChange);
481      geoLocationManager.off('locationChange', locationChange);
482  } catch (err) {
483      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
484  }
485  ```
486
487
488## geoLocationManager.on('locationEnabledChange')
489
490on(type: 'locationEnabledChange', callback: Callback&lt;boolean&gt;): void
491
492订阅位置服务状态变化。
493
494**系统能力**:SystemCapability.Location.Location.Core
495
496**参数:**
497
498  | 参数名 | 类型 | 必填 | 说明 |
499  | -------- | -------- | -------- | -------- |
500  | type | string | 是 | 设置事件类型。type为“locationEnabledChange”,表示位置服务状态。 |
501  | callback | Callback&lt;boolean&gt; | 是 | 接收位置服务状态变化监听。 |
502
503**错误码**:
504
505以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
506
507| 错误码ID | 错误信息 |
508| -------- | ---------------------------------------- |
509|3301000 | Location service is unavailable.                                            |
510
511**示例**
512
513  ```ts
514  import geoLocationManager from '@ohos.geoLocationManager';
515  import BusinessError from "@ohos.base";
516  let locationEnabledChange = (state:boolean):void => {
517      console.log('locationEnabledChange: ' + JSON.stringify(state));
518  }
519  try {
520      geoLocationManager.on('locationEnabledChange', locationEnabledChange);
521  } catch (err) {
522      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
523  }
524  ```
525
526
527## geoLocationManager.off('locationEnabledChange')
528
529off(type: 'locationEnabledChange', callback?: Callback&lt;boolean&gt;): void;
530
531取消订阅位置服务状态变化。
532
533**系统能力**:SystemCapability.Location.Location.Core
534
535**参数**:
536
537  | 参数名 | 类型 | 必填 | 说明 |
538  | -------- | -------- | -------- | -------- |
539  | type | string | 是 | 设置事件类型。type为“locationEnabledChange”,表示位置服务状态。 |
540  | callback | Callback&lt;boolean&gt; | 否 | 需要取消订阅的回调函数。若无此参数,则取消当前类型的所有订阅。 |
541
542**错误码**:
543
544以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
545
546| 错误码ID | 错误信息 |
547| -------- | ---------------------------------------- |
548|3301000 | Location service is unavailable.                                            |
549
550**示例**
551
552  ```ts
553  import geoLocationManager from '@ohos.geoLocationManager';
554  import BusinessError from "@ohos.base";
555  let locationEnabledChange = (state:boolean):void => {
556      console.log('locationEnabledChange: state: ' + JSON.stringify(state));
557  }
558  try {
559      geoLocationManager.on('locationEnabledChange', locationEnabledChange);
560      geoLocationManager.off('locationEnabledChange', locationEnabledChange);
561  } catch (err) {
562      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
563  }
564  ```
565
566
567## geoLocationManager.on('cachedGnssLocationsChange')
568
569on(type: 'cachedGnssLocationsChange', request: CachedGnssLocationsRequest, callback: Callback&lt;Array&lt;Location&gt;&gt;): void;
570
571订阅缓存GNSS定位结果上报事件。该接口功能由gnss定位芯片提供(仅部分型号支持),如果设备无此芯片或使用的芯片型号不支持该功能,则返回错误码801(Capability not supported)。
572
573**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
574
575**系统能力**:SystemCapability.Location.Location.Gnss
576
577**参数**:
578
579  | 参数名 | 类型 | 必填 | 说明 |
580  | -------- | -------- | -------- | -------- |
581  | type | string | 是 | 设置事件类型。type为“cachedGnssLocationsChange”,表示GNSS缓存定位结果上报。 |
582  | request |  [CachedGnssLocationsRequest](#cachedgnsslocationsrequest) | 是 | GNSS缓存功能配置参数 |
583  | callback | Callback&lt;boolean&gt; | 是 | 接收GNSS缓存位置上报。 |
584
585**错误码**:
586
587以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
588
589| 错误码ID | 错误信息 |
590| -------- | ---------------------------------------- |
591|3301000 | Location service is unavailable.                                            |
592|3301100 | The location switch is off.                                                 |
593|3301200 | Failed to obtain the geographical location.                                       |
594
595**示例**
596
597  ```ts
598  import geoLocationManager from '@ohos.geoLocationManager';
599  import BusinessError from "@ohos.base";
600  let cachedLocationsCb = (locations:Array<geoLocationManager.Location>):void => {
601      console.log('cachedGnssLocationsChange: locations: ' + JSON.stringify(locations));
602  }
603  let requestInfo:geoLocationManager.CachedGnssLocationsRequest = {'reportingPeriodSec': 10, 'wakeUpCacheQueueFull': true};
604  try {
605      geoLocationManager.on('cachedGnssLocationsChange', requestInfo, cachedLocationsCb);
606  } catch (err) {
607      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
608  }
609  ```
610
611
612## geoLocationManager.off('cachedGnssLocationsChange')
613
614off(type: 'cachedGnssLocationsChange', callback?: Callback&lt;Array&lt;Location&gt;&gt;): void;
615
616取消订阅缓存GNSS定位结果上报事件。该接口功能由gnss定位芯片提供(仅部分型号支持),如果设备无此芯片或使用的芯片型号不支持该功能,则返回错误码801(Capability not supported)。
617
618**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
619
620**系统能力**:SystemCapability.Location.Location.Gnss
621
622**参数**:
623
624  | 参数名 | 类型 | 必填 | 说明 |
625  | -------- | -------- | -------- | -------- |
626  | type | string | 是 | 设置事件类型。type为“cachedGnssLocationsChange”,表示GNSS缓存定位结果上报。 |
627  | callback | Callback&lt;boolean&gt; | 否 | 需要取消订阅的回调函数。若无此参数,则取消当前类型的所有订阅。 |
628
629**错误码**:
630
631以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
632
633| 错误码ID | 错误信息 |
634| -------- | ---------------------------------------- |
635|3301000 | Location service is unavailable.                                            |
636|3301100 | The location switch is off.                                                 |
637|3301200 | Failed to obtain the geographical location.                                       |
638
639**示例**
640
641  ```ts
642  import geoLocationManager from '@ohos.geoLocationManager';
643  import BusinessError from "@ohos.base";
644  let cachedLocationsCb = (locations:Array<geoLocationManager.Location>):void => {
645      console.log('cachedGnssLocationsChange: locations: ' + JSON.stringify(locations));
646  }
647  let requestInfo:geoLocationManager.CachedGnssLocationsRequest = {'reportingPeriodSec': 10, 'wakeUpCacheQueueFull': true};
648  try {
649      geoLocationManager.on('cachedGnssLocationsChange', requestInfo, cachedLocationsCb);
650      geoLocationManager.off('cachedGnssLocationsChange');
651  } catch (err) {
652      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
653  }
654  ```
655
656
657## geoLocationManager.on('satelliteStatusChange')
658
659on(type: 'satelliteStatusChange', callback: Callback&lt;SatelliteStatusInfo&gt;): void;
660
661订阅GNSS卫星状态信息上报事件。
662
663**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
664
665**系统能力**:SystemCapability.Location.Location.Gnss
666
667**参数**:
668
669  | 参数名 | 类型 | 必填 | 说明 |
670  | -------- | -------- | -------- | -------- |
671  | type | string | 是 | 设置事件类型。type为“satelliteStatusChange”,表示订阅GNSS卫星状态信息上报。 |
672  | callback | Callback&lt;[SatelliteStatusInfo](#satellitestatusinfo)&gt; | 是 | 接收GNSS卫星状态信息上报。 |
673
674**错误码**:
675
676以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
677
678| 错误码ID | 错误信息 |
679| -------- | ---------------------------------------- |
680|3301000 | Location service is unavailable.                                            |
681|3301100 | The location switch is off.                                                 |
682
683**示例**
684
685  ```ts
686  import geoLocationManager from '@ohos.geoLocationManager';
687  import BusinessError from "@ohos.base";
688  let gnssStatusCb = (satelliteStatusInfo:geoLocationManager.SatelliteStatusInfo):void => {
689      console.log('satelliteStatusChange: ' + JSON.stringify(satelliteStatusInfo));
690  }
691
692  try {
693      geoLocationManager.on('satelliteStatusChange', gnssStatusCb);
694  } catch (err) {
695      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
696  }
697  ```
698
699
700## geoLocationManager.off('satelliteStatusChange')
701
702off(type: 'satelliteStatusChange', callback?: Callback&lt;SatelliteStatusInfo&gt;): void;
703
704取消订阅GNSS卫星状态信息上报事件。
705
706**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
707
708**系统能力**:SystemCapability.Location.Location.Gnss
709
710**参数**:
711
712  | 参数名 | 类型 | 必填 | 说明 |
713  | -------- | -------- | -------- | -------- |
714  | type | string | 是 | 设置事件类型。type为“satelliteStatusChange”,表示订阅GNSS卫星状态信息上报。 |
715  | callback | Callback&lt;[SatelliteStatusInfo](#satellitestatusinfo)&gt; | 否 | 需要取消订阅的回调函数。若无此参数,则取消当前类型的所有订阅。 |
716
717**错误码**:
718
719以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
720
721| 错误码ID | 错误信息 |
722| -------- | ---------------------------------------- |
723|3301000 | Location service is unavailable.                                            |
724|3301100 | The location switch is off.                                                 |
725
726
727**示例**
728
729  ```ts
730  import geoLocationManager from '@ohos.geoLocationManager';
731  import BusinessError from "@ohos.base";
732  let gnssStatusCb = (satelliteStatusInfo:geoLocationManager.SatelliteStatusInfo):void => {
733      console.log('satelliteStatusChange: ' + JSON.stringify(satelliteStatusInfo));
734  }
735  try {
736      geoLocationManager.on('satelliteStatusChange', gnssStatusCb);
737      geoLocationManager.off('satelliteStatusChange', gnssStatusCb);
738  } catch (err) {
739      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
740  }
741  ```
742
743
744## geoLocationManager.on('nmeaMessage')
745
746on(type: 'nmeaMessage', callback: Callback&lt;string&gt;): void;
747
748订阅GNSS NMEA信息上报事件。
749
750**需要权限**:ohos.permission.LOCATIONohos.permission.APPROXIMATELY_LOCATION
751
752**系统能力**:SystemCapability.Location.Location.Gnss
753
754**参数**:
755
756  | 参数名 | 类型 | 必填 | 说明 |
757  | -------- | -------- | -------- | -------- |
758  | type | string | 是 | 设置事件类型。type为“nmeaMessage”,表示订阅GNSS&nbsp;NMEA信息上报。 |
759  | callback | Callback&lt;string&gt; | 是 | 接收GNSS&nbsp;NMEA信息上报。 |
760
761**错误码**:
762
763以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
764
765| 错误码ID | 错误信息 |
766| -------- | ---------------------------------------- |
767|3301000 | Location service is unavailable.                                            |
768|3301100 | The location switch is off.                                                 |
769
770
771**示例**
772
773  ```ts
774  import geoLocationManager from '@ohos.geoLocationManager';
775  import BusinessError from "@ohos.base";
776  let nmeaCb = (str:string):void => {
777      console.log('nmeaMessage: ' + JSON.stringify(str));
778  }
779
780  try {
781      geoLocationManager.on('nmeaMessage', nmeaCb );
782  } catch (err) {
783      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
784  }
785  ```
786
787
788## geoLocationManager.off('nmeaMessage')
789
790off(type: 'nmeaMessage', callback?: Callback&lt;string&gt;): void;
791
792取消订阅GNSS NMEA信息上报事件。
793
794**需要权限**:ohos.permission.LOCATIONohos.permission.APPROXIMATELY_LOCATION
795
796**系统能力**:SystemCapability.Location.Location.Gnss
797
798**参数**:
799
800  | 参数名 | 类型 | 必填 | 说明 |
801  | -------- | -------- | -------- | -------- |
802  | type | string | 是 | 设置事件类型。type为“nmeaMessage”,表示订阅GNSS&nbsp;NMEA信息上报。 |
803  | callback | Callback&lt;string&gt; | 否 | 需要取消订阅的回调函数。若无此参数,则取消当前类型的所有订阅。 |
804
805**错误码**:
806
807以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
808
809| 错误码ID | 错误信息 |
810| -------- | ---------------------------------------- |
811|3301000 | Location service is unavailable.                                            |
812|3301100 | The location switch is off.                                                 |
813
814
815**示例**
816
817  ```ts
818  import geoLocationManager from '@ohos.geoLocationManager';
819  import BusinessError from "@ohos.base";
820  let nmeaCb = (str:string):void => {
821      console.log('nmeaMessage: ' + JSON.stringify(str));
822  }
823
824  try {
825      geoLocationManager.on('nmeaMessage', nmeaCb);
826      geoLocationManager.off('nmeaMessage', nmeaCb);
827  } catch (err) {
828      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
829  }
830  ```
831
832
833## geoLocationManager.on('gnssFenceStatusChange')
834
835on(type: 'gnssFenceStatusChange', request: GeofenceRequest, want: WantAgent): void;
836
837添加一个围栏,并订阅地理围栏事件。该接口功能由gnss定位芯片提供(仅部分型号支持),如果设备无此芯片或使用的芯片型号不支持该功能,则返回错误码801(Capability not supported)。
838
839**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
840
841**系统能力**:SystemCapability.Location.Location.Geofence
842
843**参数**:
844
845  | 参数名 | 类型 | 必填 | 说明 |
846  | -------- | -------- | -------- | -------- |
847  | type | string | 是 | 设置事件类型。type为“gnssFenceStatusChange”,表示订阅围栏事件上报。 |
848  | request |  [GeofenceRequest](#geofencerequest) | 是 | 围栏的配置参数。 |
849  | want | [WantAgent](js-apis-app-ability-wantAgent.md) | 是 | 用于接收地理围栏事件上报(进出围栏)。 |
850
851**错误码**:
852
853以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
854
855| 错误码ID | 错误信息 |
856| -------- | ---------------------------------------- |
857|3301000 | Location service is unavailable.                                            |
858|3301100 | The location switch is off.                                                 |
859|3301600 | Failed to operate the geofence.                                     |
860
861**示例**
862
863  ```ts
864  import geoLocationManager from '@ohos.geoLocationManager';
865  import wantAgent from '@ohos.app.ability.wantAgent';
866  import BusinessError from "@ohos.base";
867
868  let wantAgentInfo:wantAgent.WantAgentInfo = {
869      wants: [
870          {
871              bundleName: "com.example.myapplication",
872              abilityName: "EntryAbility",
873              action: "action1"
874          }
875      ],
876      operationType: wantAgent.OperationType.START_ABILITY,
877      requestCode: 0,
878      wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
879  };
880
881  wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => {
882    let requestInfo:geoLocationManager.GeofenceRequest = {'scenario': 0x301, "geofence": {"latitude": 121, "longitude": 26, "radius": 100, "expiration": 10000}};
883    try {
884        geoLocationManager.on('gnssFenceStatusChange', requestInfo, wantAgentObj);
885    } catch (err) {
886        console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
887    }
888  });
889  ```
890
891
892## geoLocationManager.off('gnssFenceStatusChange')
893
894off(type: 'gnssFenceStatusChange', request: GeofenceRequest, want: WantAgent): void;
895
896删除一个围栏,并取消订阅该围栏事件。该接口功能由gnss定位芯片提供(仅部分型号支持),如果设备无此芯片或使用的芯片型号不支持该功能,则返回错误码801(Capability not supported)。
897
898**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
899
900**系统能力**:SystemCapability.Location.Location.Geofence
901
902**参数**:
903
904  | 参数名 | 类型 | 必填 | 说明 |
905  | -------- | -------- | -------- | -------- |
906  | type | string | 是 | 设置事件类型。type为“gnssFenceStatusChange”,表示订阅围栏事件上报。 |
907  | request | [GeofenceRequest](#geofencerequest) | 是 | 围栏的配置参数。 |
908  | want | [WantAgent](js-apis-app-ability-wantAgent.md) | 是 | 用于接收地理围栏事件上报(进出围栏)。 |
909
910**错误码**:
911
912以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
913
914| 错误码ID | 错误信息 |
915| -------- | ---------------------------------------- |
916|3301000 | Location service is unavailable.                                            |
917|3301100 | The location switch is off.                                                 |
918|3301600 | Failed to operate the geofence.                                     |
919
920**示例**
921
922  ```ts
923  import geoLocationManager from '@ohos.geoLocationManager';
924  import wantAgent from '@ohos.app.ability.wantAgent';
925  import BusinessError from "@ohos.base";
926
927  let wantAgentInfo:wantAgent.WantAgentInfo = {
928      wants: [
929          {
930              bundleName: "com.example.myapplication",
931              abilityName: "EntryAbility",
932              action: "action1",
933          }
934      ],
935      operationType: wantAgent.OperationType.START_ABILITY,
936      requestCode: 0,
937      wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
938  };
939
940  wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => {
941    let requestInfo:geoLocationManager.GeofenceRequest = {'scenario': 0x301, "geofence": {"latitude": 121, "longitude": 26, "radius": 100, "expiration": 10000}};;
942    try {
943        geoLocationManager.on('gnssFenceStatusChange', requestInfo, wantAgentObj);
944        geoLocationManager.off('gnssFenceStatusChange', requestInfo, wantAgentObj);
945    } catch (err) {
946        console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
947    }
948  });
949  ```
950
951
952## geoLocationManager.on('countryCodeChange')
953
954on(type: 'countryCodeChange', callback: Callback&lt;CountryCode&gt;): void;
955
956订阅国家码信息变化事件。
957
958**系统能力**:SystemCapability.Location.Location.Core
959
960**参数**:
961
962  | 参数名 | 类型 | 必填 | 说明 |
963  | -------- | -------- | -------- | -------- |
964  | type | string | 是 | 设置事件类型。type为“countryCodeChange”,表示订阅国家码信息变化事件。 |
965  | callback | Callback&lt;[CountryCode](#countrycode)&gt; | 是 | 接收国家码信息上报。 |
966
967**错误码**:
968
969以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
970
971| 错误码ID | 错误信息 |
972| -------- | ---------------------------------------- |
973|3301000 | Location service is unavailable.                                            |
974|3301500 | Failed to query the area information.                                       |
975
976
977**示例**
978
979  ```ts
980  import geoLocationManager from '@ohos.geoLocationManager';
981  import BusinessError from "@ohos.base";
982  let callback = (code:geoLocationManager.CountryCode):void => {
983      console.log('countryCodeChange: ' + JSON.stringify(code));
984  }
985
986  try {
987      geoLocationManager.on('countryCodeChange', callback);
988  } catch (err) {
989      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
990  }
991  ```
992
993
994## geoLocationManager.off('countryCodeChange')
995
996off(type: 'countryCodeChange', callback?: Callback&lt;CountryCode&gt;): void;
997
998取消订阅国家码变化事件。
999
1000**系统能力**:SystemCapability.Location.Location.Core
1001
1002**参数**:
1003
1004  | 参数名 | 类型 | 必填 | 说明 |
1005  | -------- | -------- | -------- | -------- |
1006  | type | string | 是 | 设置事件类型。type为“countryCodeChange”,表示取消订阅国家码信息变化事件。 |
1007  | callback | Callback&lt;[CountryCode](#countrycode)&gt; | 否 | 需要取消订阅的回调函数。若无此参数,则取消当前类型的所有订阅。 |
1008
1009**错误码**:
1010
1011以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
1012
1013| 错误码ID | 错误信息 |
1014| -------- | ---------------------------------------- |
1015|3301000 | Location service is unavailable.                                            |
1016|3301500 | Failed to query the area information.                                       |
1017
1018**示例**
1019
1020  ```ts
1021  import geoLocationManager from '@ohos.geoLocationManager';
1022  import BusinessError from "@ohos.base";
1023  let callback = (code:geoLocationManager.CountryCode):void => {
1024      console.log('countryCodeChange: ' + JSON.stringify(code));
1025  }
1026
1027  try {
1028      geoLocationManager.on('countryCodeChange', callback);
1029      geoLocationManager.off('countryCodeChange', callback);
1030  } catch (err) {
1031      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1032  }
1033  ```
1034
1035
1036## geoLocationManager.on('locatingRequiredDataChange')<sup>10+</sup>
1037
1038on(type: 'locatingRequiredDataChange', config: LocatingRequiredDataConfig, callback: Callback&lt;Array&lt;LocatingRequiredData&gt;&gt;): void;
1039
1040订阅定位业务所需数据的变化,主要包含WiFi和蓝牙扫描信息;根据入参决定是否启动WiFi和蓝牙扫描。
1041
1042**需要权限**:ohos.permission.LOCATIONohos.permission.APPROXIMATELY_LOCATION
1043
1044**系统能力**:SystemCapability.Location.Location.Core
1045
1046**系统API**:此接口为系统接口。
1047
1048**参数**:
1049
1050  | 参数名 | 类型 | 必填 | 说明 |
1051  | -------- | -------- | -------- | -------- |
1052  | type | string | 是 | 设置事件类型。type为“locatingRequiredDataChange”,表示订阅定位业务所需数据的变化。 |
1053  | config | [LocatingRequiredDataConfig](#locatingrequireddataconfig10) | 是 | 表示获取定位所需数据时的配置参数。 |
1054  | callback | Callback&lt;Array&lt;[LocatingRequiredData](#locatingrequireddata10)&gt;&gt; | 是 | 接收定位业务所需数据的上报。 |
1055
1056**错误码**:
1057
1058以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
1059
1060| 错误码ID | 错误信息 |
1061| -------- | ---------------------------------------- |
1062|3301800 | Failed to start WiFi or Bluetooth scanning.                            |
1063
1064**示例**
1065
1066  ```ts
1067  import geoLocationManager from '@ohos.geoLocationManager';
1068  import BusinessError from "@ohos.base";
1069  let callback = (code:Array<geoLocationManager.LocatingRequiredData>):void => {
1070      console.log('locatingRequiredDataChange: ' + JSON.stringify(code));
1071  }
1072  let config:geoLocationManager.LocatingRequiredDataConfig = {'type': 1, 'needStartScan': true, 'scanInterval': 10000};
1073  try {
1074      geoLocationManager.on('locatingRequiredDataChange', config, callback);
1075  } catch (err) {
1076      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1077  }
1078  ```
1079
1080
1081## geoLocationManager.off('locatingRequiredDataChange')<sup>10+</sup>
1082
1083off(type: 'locatingRequiredDataChange', callback?: Callback&lt;Array&lt;LocatingRequiredData&gt;&gt;): void;
1084
1085取消订阅定位业务所需数据的变化,并停止WiFi和蓝牙扫描。
1086
1087**需要权限**:ohos.permission.LOCATIONohos.permission.APPROXIMATELY_LOCATION
1088
1089**系统能力**:SystemCapability.Location.Location.Core
1090
1091**系统API**:此接口为系统接口。
1092
1093**参数**:
1094
1095  | 参数名 | 类型 | 必填 | 说明 |
1096  | -------- | -------- | -------- | -------- |
1097  | type | string | 是 | 设置事件类型。type为“locatingRequiredDataChange”,表示取消订阅定位业务所需数据的变化。 |
1098  | callback | Callback&lt;Array&lt;[LocatingRequiredData](#locatingrequireddata10)&gt;&gt; | 否 | 需要取消订阅的回调函数。若无此参数,则取消当前类型的所有订阅。 |
1099
1100**错误码**:
1101
1102错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
1103
1104**示例**
1105
1106  ```ts
1107  import geoLocationManager from '@ohos.geoLocationManager';
1108  import BusinessError from "@ohos.base";
1109  let callback = (code:Array<geoLocationManager.LocatingRequiredData>):void => {
1110      console.log('locatingRequiredDataChange: ' + JSON.stringify(code));
1111  }
1112  let config:geoLocationManager.LocatingRequiredDataConfig = {'type': 1, 'needStartScan': true, 'scanInterval': 10000};
1113  try {
1114      geoLocationManager.on('locatingRequiredDataChange', config, callback);
1115      geoLocationManager.off('locatingRequiredDataChange', callback);
1116  } catch (err) {
1117      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1118  }
1119  ```
1120
1121
1122## geoLocationManager.getCurrentLocation
1123
1124getCurrentLocation(request: CurrentLocationRequest, callback: AsyncCallback&lt;Location&gt;): void
1125
1126获取当前位置,使用callback回调异步返回结果。
1127
1128**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
1129
1130**系统能力**:SystemCapability.Location.Location.Core
1131
1132**参数**:
1133
1134  | 参数名 | 类型 | 必填 | 说明 |
1135  | -------- | -------- | -------- | -------- |
1136  | request | [CurrentLocationRequest](#currentlocationrequest) | 是 | 设置位置请求参数。 |
1137  | callback | AsyncCallback&lt;[Location](#location)&gt; | 是 | 用来接收位置信息的回调。 |
1138
1139**错误码**:
1140
1141以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
1142
1143| 错误码ID | 错误信息 |
1144| -------- | ---------------------------------------- |
1145|3301000 | Location service is unavailable.                                            |
1146|3301100 | The location switch is off.                                                 |
1147|3301200 | Failed to obtain the geographical location.  |
1148
1149**示例**
1150
1151  ```ts
1152  import geoLocationManager from '@ohos.geoLocationManager';
1153  import BusinessError from "@ohos.base";
1154  let requestInfo:geoLocationManager.CurrentLocationRequest = {'priority': geoLocationManager.LocationRequestPriority.FIRST_FIX, 'scenario': geoLocationManager.LocationRequestScenario.UNSET,'maxAccuracy': 0};
1155  let locationChange = (err:BusinessError.BusinessError, location:geoLocationManager.Location):void => {
1156      if (err) {
1157          console.log('locationChanger: err=' + JSON.stringify(err));
1158      }
1159      if (location) {
1160          console.log('locationChanger: location=' + JSON.stringify(location));
1161      }
1162  };
1163
1164  try {
1165      geoLocationManager.getCurrentLocation(requestInfo, locationChange);
1166  } catch (err) {
1167      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1168  }
1169  ```
1170
1171## geoLocationManager.getCurrentLocation
1172
1173getCurrentLocation(callback: AsyncCallback&lt;Location&gt;): void;
1174
1175获取当前位置,通过callback方式异步返回结果。
1176
1177**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
1178
1179**系统能力**:SystemCapability.Location.Location.Core
1180
1181**参数**:
1182
1183  | 参数名 | 类型 | 必填 | 说明 |
1184  | -------- | -------- | -------- | -------- |
1185  | callback | AsyncCallback&lt;[Location](#location)&gt; | 是 | 用来接收位置信息的回调。 |
1186
1187**错误码**:
1188
1189以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
1190
1191| 错误码ID | 错误信息 |
1192| -------- | ---------------------------------------- |
1193|3301000 | Location service is unavailable.                                            |
1194|3301100 | The location switch is off.                                                 |
1195|3301200 | Failed to obtain the geographical location.  |
1196
1197**示例**
1198
1199  ```ts
1200  import geoLocationManager from '@ohos.geoLocationManager';
1201  import BusinessError from "@ohos.base";
1202  let locationChange = (err:BusinessError.BusinessError, location:geoLocationManager.Location) => {
1203      if (err) {
1204          console.log('locationChanger: err=' + JSON.stringify(err));
1205      }
1206      if (location) {
1207          console.log('locationChanger: location=' + JSON.stringify(location));
1208      }
1209  };
1210
1211  try {
1212      geoLocationManager.getCurrentLocation(locationChange);
1213  } catch (err) {
1214      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1215  }
1216  ```
1217
1218## geoLocationManager.getCurrentLocation
1219
1220getCurrentLocation(request?: CurrentLocationRequest): Promise&lt;Location&gt;
1221
1222获取当前位置,使用Promise方式异步返回结果。
1223
1224**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
1225
1226**系统能力**:SystemCapability.Location.Location.Core
1227
1228**参数**:
1229
1230  | 参数名 | 类型 | 必填 | 说明 |
1231  | -------- | -------- | -------- | -------- |
1232  | request | [CurrentLocationRequest](#currentlocationrequest) | 否 | 设置位置请求参数。 |
1233
1234**返回值**:
1235
1236  | 参数名 | 类型 | 必填 | 说明 |
1237  | -------- | -------- | -------- | -------- |
1238  | Promise&lt;[Location](#location)&gt;  | [Location](#location) | NA | 返回位置信息。 |
1239
1240**错误码**:
1241
1242以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
1243
1244| 错误码ID | 错误信息 |
1245| -------- | ---------------------------------------- |
1246|3301000 | Location service is unavailable.                                            |
1247|3301100 | The location switch is off.                                                 |
1248|3301200 | Failed to obtain the geographical location.  |
1249
1250**示例**
1251
1252  ```ts
1253  import geoLocationManager from '@ohos.geoLocationManager';
1254  import BusinessError from "@ohos.base";
1255  let requestInfo:geoLocationManager.CurrentLocationRequest = {'priority': geoLocationManager.LocationRequestPriority.FIRST_FIX, 'scenario': geoLocationManager.LocationRequestScenario.UNSET,'maxAccuracy': 0};
1256  try {
1257      geoLocationManager.getCurrentLocation(requestInfo).then((result) => {
1258          console.log('current location: ' + JSON.stringify(result));
1259      })
1260      .catch((error:number) => {
1261          console.log('promise, getCurrentLocation: error=' + JSON.stringify(error));
1262      });
1263  } catch (err) {
1264      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1265  }
1266  ```
1267
1268
1269## geoLocationManager.getLastLocation
1270
1271getLastLocation(): Location
1272
1273获取上一次位置。
1274
1275**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
1276
1277**系统能力**:SystemCapability.Location.Location.Core
1278
1279**返回值**:
1280
1281  | 参数名 | 类型 | 必填 | 说明 |
1282  | -------- | -------- | -------- | -------- |
1283  | Location  | [Location](#location) | NA | 位置信息。 |
1284
1285**错误码**:
1286
1287以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
1288
1289| 错误码ID | 错误信息 |
1290| -------- | ---------------------------------------- |
1291|3301000 | Location service is unavailable.  |
1292|3301100 | The location switch is off.  |
1293|3301200 |Failed to obtain the geographical location.  |
1294
1295**示例**
1296
1297  ```ts
1298  import geoLocationManager from '@ohos.geoLocationManager';
1299  import BusinessError from "@ohos.base";
1300  try {
1301      let location = geoLocationManager.getLastLocation();
1302  } catch (err) {
1303      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1304  }
1305  ```
1306
1307
1308## geoLocationManager.isLocationEnabled
1309
1310isLocationEnabled(): boolean
1311
1312判断位置服务是否已经使能。
1313
1314**系统能力**:SystemCapability.Location.Location.Core
1315
1316**返回值**:
1317
1318  | 参数名 | 类型 | 必填 | 说明 |
1319  | -------- | -------- | -------- | -------- |
1320  | boolean  | boolean | NA | 位置服务是否已经使能。 |
1321
1322**错误码**:
1323
1324以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
1325
1326| 错误码ID | 错误信息 |
1327| -------- | ---------------------------------------- |
1328|3301000 | Location service is unavailable.  |
1329
1330**示例**
1331
1332  ```ts
1333  import geoLocationManager from '@ohos.geoLocationManager';
1334  import BusinessError from "@ohos.base";
1335  try {
1336      let locationEnabled = geoLocationManager.isLocationEnabled();
1337  } catch (err) {
1338      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1339  }
1340  ```
1341
1342
1343## geoLocationManager.enableLocation
1344
1345enableLocation(callback: AsyncCallback&lt;void&gt;): void;
1346
1347打开位置服务,使用callback回调异步返回结果。
1348
1349**系统API**:此接口为系统接口。
1350
1351**需要权限**:ohos.permission.MANAGE_SECURE_SETTINGS
1352
1353**系统能力**:SystemCapability.Location.Location.Core
1354
1355**参数**:
1356
1357  | 参数名 | 类型 | 必填 | 说明 |
1358  | -------- | -------- | -------- | -------- |
1359  | callback | AsyncCallback&lt;void&gt; | 是 | 用来接收错误码信息。 |
1360
1361**错误码**:
1362
1363以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
1364
1365| 错误码ID | 错误信息 |
1366| -------- | ---------------------------------------- |
1367|3301000 | Location service is unavailable.                                            |
1368
1369**示例**
1370
1371  ```ts
1372  import geoLocationManager from '@ohos.geoLocationManager';
1373  import BusinessError from "@ohos.base";
1374  try {
1375      geoLocationManager.enableLocation((err, data) => {
1376          if (err) {
1377              console.log('enableLocation: err=' + JSON.stringify(err));
1378          }
1379      });
1380  } catch (err) {
1381      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1382  }
1383  ```
1384
1385
1386## geoLocationManager.enableLocation
1387
1388enableLocation(): Promise&lt;void&gt;
1389
1390打开位置服务,使用Promise方式异步返回结果。
1391
1392**系统API**:此接口为系统接口。
1393
1394**需要权限**:ohos.permission.MANAGE_SECURE_SETTINGS
1395
1396**系统能力**:SystemCapability.Location.Location.Core
1397
1398**返回值**:
1399
1400  | 参数名 | 类型 | 必填 | 说明 |
1401  | -------- | -------- | -------- | -------- |
1402  | Promise&lt;void&gt;  | void | NA | 返回错误码信息。 |
1403
1404**错误码**:
1405
1406以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
1407
1408| 错误码ID | 错误信息 |
1409| -------- | ---------------------------------------- |
1410|3301000 | Location service is unavailable.                                            |
1411
1412**示例**
1413
1414  ```ts
1415  import geoLocationManager from '@ohos.geoLocationManager';
1416  import BusinessError from "@ohos.base";
1417  try {
1418      geoLocationManager.enableLocation().then((result) => {
1419          console.log('promise, enableLocation succeed');
1420      })
1421      .catch((error:number) => {
1422          console.log('promise, enableLocation: error=' + JSON.stringify(error));
1423      });
1424  } catch (err) {
1425      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1426  }
1427  ```
1428
1429## geoLocationManager.disableLocation
1430
1431disableLocation(): void;
1432
1433关闭位置服务。
1434
1435**系统API**:此接口为系统接口。
1436
1437**需要权限**:ohos.permission.MANAGE_SECURE_SETTINGS
1438
1439**系统能力**:SystemCapability.Location.Location.Core
1440
1441**错误码**:
1442
1443以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
1444
1445| 错误码ID | 错误信息 |
1446| -------- | ---------------------------------------- |
1447|3301000 | Location service is unavailable.                                            |
1448
1449**示例**
1450
1451  ```ts
1452  import geoLocationManager from '@ohos.geoLocationManager';
1453  import BusinessError from "@ohos.base";
1454  try {
1455      geoLocationManager.disableLocation();
1456  } catch (err) {
1457      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1458  }
1459  ```
1460
1461
1462## geoLocationManager.getAddressesFromLocation
1463
1464getAddressesFromLocation(request: ReverseGeoCodeRequest, callback: AsyncCallback&lt;Array&lt;GeoAddress&gt;&gt;): void
1465
1466调用逆地理编码服务,将坐标转换为地理描述,使用callback回调异步返回结果。
1467
1468**系统能力**:SystemCapability.Location.Location.Geocoder
1469
1470**参数**:
1471
1472  | 参数名 | 类型 | 必填 | 说明 |
1473  | -------- | -------- | -------- | -------- |
1474  | request | [ReverseGeoCodeRequest](#reversegeocoderequest) | 是 | 设置逆地理编码请求的相关参数。 |
1475  | callback | AsyncCallback&lt;Array&lt;[GeoAddress](#geoaddress)&gt;&gt; | 是 | 接收逆地理编码结果的回调函数。 |
1476
1477**错误码**:
1478
1479以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
1480
1481| 错误码ID | 错误信息 |
1482| -------- | ---------------------------------------- |
1483|3301000 | Location service is unavailable.   |
1484|3301300 | Reverse geocoding query failed.   |
1485
1486**示例**
1487
1488  ```ts
1489  import geoLocationManager from '@ohos.geoLocationManager';
1490  import BusinessError from "@ohos.base";
1491  let reverseGeocodeRequest:geoLocationManager.ReverseGeoCodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1};
1492  try {
1493      geoLocationManager.getAddressesFromLocation(reverseGeocodeRequest, (err, data) => {
1494          if (err) {
1495              console.log('getAddressesFromLocation: err=' + JSON.stringify(err));
1496          }
1497          if (data) {
1498              console.log('getAddressesFromLocation: data=' + JSON.stringify(data));
1499          }
1500      });
1501  } catch (err) {
1502      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1503  }
1504  ```
1505
1506
1507## geoLocationManager.getAddressesFromLocation
1508
1509getAddressesFromLocation(request: ReverseGeoCodeRequest): Promise&lt;Array&lt;GeoAddress&gt;&gt;;
1510
1511调用逆地理编码服务,将坐标转换为地理描述,使用Promise方式异步返回结果。
1512
1513**系统能力**:SystemCapability.Location.Location.Geocoder
1514
1515**参数**:
1516
1517  | 参数名 | 类型 | 必填 | 说明 |
1518  | -------- | -------- | -------- | -------- |
1519  | request | [ReverseGeoCodeRequest](#reversegeocoderequest) | 是 | 设置逆地理编码请求的相关参数。 |
1520
1521**返回值**:
1522
1523  | 参数名 | 类型 | 必填 | 说明 |
1524  | -------- | -------- | -------- | -------- |
1525  | Promise&lt;Array&lt;[GeoAddress](#geoaddress)&gt;&gt;  | Array&lt;[GeoAddress](#geoaddress)&gt; | NA | 返回地理描述信息。 |
1526
1527**错误码**:
1528
1529以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
1530
1531| 错误码ID | 错误信息 |
1532| -------- | ---------------------------------------- |
1533|3301000 | Location service is unavailable.   |
1534|3301300 | Reverse geocoding query failed.   |
1535
1536**示例**
1537
1538  ```ts
1539  import geoLocationManager from '@ohos.geoLocationManager';
1540  import BusinessError from "@ohos.base";
1541  let reverseGeocodeRequest:geoLocationManager.ReverseGeoCodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1};
1542  try {
1543      geoLocationManager.getAddressesFromLocation(reverseGeocodeRequest).then((data) => {
1544          console.log('getAddressesFromLocation: ' + JSON.stringify(data));
1545      })
1546      .catch((error:number) => {
1547          console.log('promise, getAddressesFromLocation: error=' + JSON.stringify(error));
1548      });
1549  } catch (err) {
1550      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1551  }
1552  ```
1553
1554
1555## geoLocationManager.getAddressesFromLocationName
1556
1557getAddressesFromLocationName(request: GeoCodeRequest, callback: AsyncCallback&lt;Array&lt;GeoAddress&gt;&gt;): void
1558
1559调用地理编码服务,将地理描述转换为具体坐标,使用callback回调异步返回结果。
1560
1561**系统能力**:SystemCapability.Location.Location.Geocoder
1562
1563**参数**:
1564
1565  | 参数名 | 类型 | 必填 | 说明 |
1566  | -------- | -------- | -------- | -------- |
1567  | request | [GeoCodeRequest](#geocoderequest) | 是 | 设置地理编码请求的相关参数。 |
1568  | callback | AsyncCallback&lt;Array&lt;[GeoAddress](#geoaddress)&gt;&gt; | 是 | 接收地理编码结果的回调函数。 |
1569
1570**错误码**:
1571
1572以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
1573
1574| 错误码ID | 错误信息 |
1575| -------- | ---------------------------------------- |
1576|3301000 | Location service is unavailable.   |
1577|3301400 | Geocoding query failed.   |
1578
1579**示例**
1580
1581  ```ts
1582  import geoLocationManager from '@ohos.geoLocationManager';
1583  import BusinessError from "@ohos.base";
1584  let geocodeRequest:geoLocationManager.GeoCodeRequest = {"description": "上海市浦东新区xx路xx号", "maxItems": 1};
1585  try {
1586      geoLocationManager.getAddressesFromLocationName(geocodeRequest, (err, data) => {
1587          if (err) {
1588              console.log('getAddressesFromLocationName: err=' + JSON.stringify(err));
1589          }
1590          if (data) {
1591              console.log('getAddressesFromLocationName: data=' + JSON.stringify(data));
1592          }
1593      });
1594  } catch (err) {
1595      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1596  }
1597  ```
1598
1599
1600## geoLocationManager.getAddressesFromLocationName
1601
1602getAddressesFromLocationName(request: GeoCodeRequest): Promise&lt;Array&lt;GeoAddress&gt;&gt;
1603
1604调用地理编码服务,将地理描述转换为具体坐标,使用Promise方式异步返回结果。
1605
1606**系统能力**:SystemCapability.Location.Location.Geocoder
1607
1608**参数**:
1609
1610  | 参数名 | 类型 | 必填 | 说明 |
1611  | -------- | -------- | -------- | -------- |
1612  | request | [GeoCodeRequest](#geocoderequest) | 是 | 设置地理编码请求的相关参数。 |
1613
1614**返回值**:
1615
1616  | 参数名 | 类型 | 必填 | 说明 |
1617  | -------- | -------- | -------- | -------- |
1618  | Promise&lt;Array&lt;[GeoAddress](#geoaddress)&gt;&gt;  | Array&lt;[GeoAddress](#geoaddress)&gt; | NA | 返回地理编码查询结果。 |
1619
1620**错误码**:
1621
1622以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
1623
1624| 错误码ID | 错误信息 |
1625| -------- | ---------------------------------------- |
1626|3301000 | Location service is unavailable.   |
1627|3301400 | Geocoding query failed.   |
1628
1629**示例**
1630
1631  ```ts
1632  import geoLocationManager from '@ohos.geoLocationManager';
1633  import BusinessError from "@ohos.base";
1634  let geocodeRequest:geoLocationManager.GeoCodeRequest = {"description": "上海市浦东新区xx路xx号", "maxItems": 1};
1635  try {
1636      geoLocationManager.getAddressesFromLocationName(geocodeRequest).then((result) => {
1637          console.log('getAddressesFromLocationName: ' + JSON.stringify(result));
1638      })
1639      .catch((error:number) => {
1640          console.log('promise, getAddressesFromLocationName: error=' + JSON.stringify(error));
1641      });
1642  } catch (err) {
1643      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1644  }
1645  ```
1646
1647## geoLocationManager.isGeocoderAvailable
1648
1649isGeocoderAvailable(): boolean;
1650
1651判断(逆)地理编码服务状态。
1652
1653**系统能力**:SystemCapability.Location.Location.Geocoder
1654
1655**返回值**:
1656
1657  | 参数名 | 类型 | 必填 | 说明 |
1658  | -------- | -------- | -------- | -------- |
1659  | boolean  | boolean | NA | 返回(逆)地理编码服务是否可用。 |
1660
1661**错误码**:
1662
1663以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
1664
1665| 错误码ID | 错误信息 |
1666| -------- | ---------------------------------------- |
1667|3301000 | Location service is unavailable.   |
1668
1669**示例**
1670
1671  ```ts
1672  import geoLocationManager from '@ohos.geoLocationManager';
1673  import BusinessError from "@ohos.base";
1674  try {
1675      let isAvailable = geoLocationManager.isGeocoderAvailable();
1676  } catch (err) {
1677      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1678  }
1679  ```
1680
1681
1682## geoLocationManager.getCachedGnssLocationsSize
1683
1684getCachedGnssLocationsSize(callback: AsyncCallback&lt;number&gt;): void;
1685
1686获取GNSS芯片缓存位置的个数。该接口功能由gnss定位芯片提供(仅部分型号支持),如果设备无此芯片或使用的芯片型号不支持该功能,则返回错误码801(Capability not supported)。
1687
1688**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
1689
1690**系统能力**:SystemCapability.Location.Location.Gnss
1691
1692**参数**:
1693
1694  | 参数名 | 类型 | 必填 | 说明 |
1695  | -------- | -------- | -------- | -------- |
1696  | callback | AsyncCallback&lt;number&gt; | 是 | 用来接收GNSS芯片缓存位置个数的回调。 |
1697
1698**错误码**:
1699
1700以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
1701
1702| 错误码ID | 错误信息 |
1703| -------- | ---------------------------------------- |
1704|3301000 | Location service is unavailable.   |
1705|3301100 | The location switch is off.   |
1706
1707**示例**
1708
1709  ```ts
1710  import geoLocationManager from '@ohos.geoLocationManager';
1711  import BusinessError from "@ohos.base";
1712  try {
1713      geoLocationManager.getCachedGnssLocationsSize((err, size) => {
1714          if (err) {
1715              console.log('getCachedGnssLocationsSize: err=' + JSON.stringify(err));
1716          }
1717          if (size) {
1718              console.log('getCachedGnssLocationsSize: size=' + JSON.stringify(size));
1719          }
1720      });
1721  } catch (err) {
1722      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1723  }
1724  ```
1725
1726
1727## geoLocationManager.getCachedGnssLocationsSize
1728
1729getCachedGnssLocationsSize(): Promise&lt;number&gt;;
1730
1731获取GNSS芯片缓存位置的个数。该接口功能由gnss定位芯片提供(仅部分型号支持),如果设备无此芯片或使用的芯片型号不支持该功能,则返回错误码801(Capability not supported)。
1732
1733**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
1734
1735**系统能力**:SystemCapability.Location.Location.Gnss
1736
1737**返回值**:
1738
1739  | 参数名 | 类型 | 必填 | 说明 |
1740  | -------- | -------- | -------- | -------- |
1741  | Promise&lt;number&gt;  | number | NA | 返回GNSS缓存位置的个数。 |
1742
1743**错误码**:
1744
1745以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
1746
1747| 错误码ID | 错误信息 |
1748| -------- | ---------------------------------------- |
1749|3301000 | Location service is unavailable.   |
1750|3301100 | The location switch is off.   |
1751
1752**示例**
1753
1754  ```ts
1755  import geoLocationManager from '@ohos.geoLocationManager';
1756  import BusinessError from "@ohos.base";
1757  try {
1758      geoLocationManager.getCachedGnssLocationsSize().then((result) => {
1759          console.log('promise, getCachedGnssLocationsSize: ' + JSON.stringify(result));
1760      })
1761      .catch((error:number) => {
1762          console.log('promise, getCachedGnssLocationsSize: error=' + JSON.stringify(error));
1763      });
1764  } catch (err) {
1765      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1766  }
1767  ```
1768
1769
1770## geoLocationManager.flushCachedGnssLocations
1771
1772flushCachedGnssLocations(callback: AsyncCallback&lt;void&gt;): void;
1773
1774读取并清空GNSS芯片所有缓存位置。该接口功能由gnss定位芯片提供(仅部分型号支持),如果设备无此芯片或使用的芯片型号不支持该功能,则返回错误码801(Capability not supported)。
1775
1776**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
1777
1778**系统能力**:SystemCapability.Location.Location.Gnss
1779
1780**参数**:
1781
1782  | 参数名 | 类型 | 必填 | 说明 |
1783  | -------- | -------- | -------- | -------- |
1784  | callback | AsyncCallback&lt;void&gt; | 是 | 用来接收错误码信息。 |
1785
1786**错误码**:
1787
1788以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
1789
1790| 错误码ID | 错误信息 |
1791| -------- | ---------------------------------------- |
1792|3301000 | Location service is unavailable.   |
1793|3301100 | The location switch is off.   |
1794|3301200 | Failed to obtain the geographical location.   |
1795
1796**示例**
1797
1798  ```ts
1799  import geoLocationManager from '@ohos.geoLocationManager';
1800  import BusinessError from "@ohos.base";
1801  try {
1802      geoLocationManager.flushCachedGnssLocations((err, result) => {
1803          if (err) {
1804              console.log('flushCachedGnssLocations: err=' + JSON.stringify(err));
1805          }
1806      });
1807  } catch (err) {
1808      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1809  }
1810  ```
1811
1812
1813## geoLocationManager.flushCachedGnssLocations
1814
1815flushCachedGnssLocations(): Promise&lt;void&gt;;
1816
1817读取并清空GNSS芯片所有缓存位置。该接口功能由gnss定位芯片提供(仅部分型号支持),如果设备无此芯片或使用的芯片型号不支持该功能,则返回错误码801(Capability not supported)。
1818
1819**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
1820
1821**系统能力**:SystemCapability.Location.Location.Gnss
1822
1823**返回值**:
1824
1825  | 参数名 | 类型 | 必填 | 说明 |
1826  | -------- | -------- | -------- | -------- |
1827  | Promise&lt;void&gt;  | void | NA | 接收错误码。 |
1828
1829**错误码**:
1830
1831以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
1832
1833| 错误码ID | 错误信息 |
1834| -------- | ---------------------------------------- |
1835|3301000 | Location service is unavailable.   |
1836|3301100 | The location switch is off.   |
1837|3301200 | Failed to obtain the geographical location.   |
1838
1839**示例**
1840
1841  ```ts
1842  import geoLocationManager from '@ohos.geoLocationManager';
1843  import BusinessError from "@ohos.base";
1844  try {
1845      geoLocationManager.flushCachedGnssLocations().then((result) => {
1846          console.log('promise, flushCachedGnssLocations success');
1847      })
1848      .catch((error:number) => {
1849          console.log('promise, flushCachedGnssLocations: error=' + JSON.stringify(error));
1850      });
1851  } catch (err) {
1852      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1853  }
1854  ```
1855
1856
1857## geoLocationManager.sendCommand
1858
1859sendCommand(command: LocationCommand, callback: AsyncCallback&lt;void&gt;): void;
1860
1861给位置服务子系统的各个部件发送扩展命令。
1862
1863**系统能力**:SystemCapability.Location.Location.Core
1864
1865**参数**:
1866
1867  | 参数名 | 类型 | 必填 | 说明 |
1868  | -------- | -------- | -------- | -------- |
1869  | command |  [LocationCommand](#locationcommand) | 是 | 指定目标场景,和将要发送的命令(字符串)。 |
1870  | callback | AsyncCallback&lt;void&gt; | 是 | 用来接收错误码。 |
1871
1872**错误码**:
1873
1874以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
1875
1876| 错误码ID | 错误信息 |
1877| -------- | ---------------------------------------- |
1878|3301000 | Location service is unavailable.   |
1879
1880**示例**
1881
1882  ```ts
1883  import geoLocationManager from '@ohos.geoLocationManager';
1884  import BusinessError from "@ohos.base";
1885  let requestInfo:geoLocationManager.LocationCommand = {'scenario': 0x301, 'command': "command_1"};
1886  try {
1887      geoLocationManager.sendCommand(requestInfo, (err, result) => {
1888          if (err) {
1889              console.log('sendCommand: err=' + JSON.stringify(err));
1890          }
1891      });
1892  } catch (err) {
1893      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1894  }
1895  ```
1896
1897
1898## geoLocationManager.sendCommand
1899
1900sendCommand(command: LocationCommand): Promise&lt;void&gt;;
1901
1902给位置服务子系统的各个部件发送扩展命令。
1903
1904**系统能力**:SystemCapability.Location.Location.Core
1905
1906**参数**:
1907
1908  | 参数名 | 类型 | 必填 | 说明 |
1909  | -------- | -------- | -------- | -------- |
1910  | command | [LocationCommand](#locationcommand) | 是 | 指定目标场景,和将要发送的命令(字符串)。 |
1911
1912**返回值**:
1913
1914  | 参数名 | 类型 | 必填 | 说明 |
1915  | -------- | -------- | -------- | -------- |
1916  | Promise&lt;void&gt;  | void | NA | 接收错误码。 |
1917
1918**错误码**:
1919
1920以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
1921
1922| 错误码ID | 错误信息 |
1923| -------- | ---------------------------------------- |
1924|3301000 | Location service is unavailable.                                            |
1925
1926**示例**
1927
1928  ```ts
1929  import geoLocationManager from '@ohos.geoLocationManager';
1930  import BusinessError from "@ohos.base";
1931  let requestInfo:geoLocationManager.LocationCommand = {'scenario': 0x301, 'command': "command_1"};
1932  try {
1933      geoLocationManager.sendCommand(requestInfo).then((result) => {
1934          console.log('promise, sendCommand success');
1935      })
1936      .catch((error:number) => {
1937          console.log('promise, sendCommand: error=' + JSON.stringify(error));
1938      });
1939  } catch (err) {
1940      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1941  }
1942  ```
1943
1944
1945## geoLocationManager.getCountryCode
1946
1947getCountryCode(callback: AsyncCallback&lt;CountryCode&gt;): void;
1948
1949查询当前的国家码。
1950
1951**系统能力**:SystemCapability.Location.Location.Core
1952
1953**参数**:
1954
1955  | 参数名 | 类型 | 必填 | 说明 |
1956  | -------- | -------- | -------- | -------- |
1957  | callback | AsyncCallback&lt;[CountryCode](#countrycode)&gt; | 是 | 用来接收国家码。 |
1958
1959**错误码**:
1960
1961以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
1962
1963| 错误码ID | 错误信息 |
1964| -------- | ---------------------------------------- |
1965|3301000 | Location service is unavailable.                                            |
1966|3301500 | Failed to query the area information.|
1967
1968**示例**
1969
1970  ```ts
1971  import geoLocationManager from '@ohos.geoLocationManager';
1972  import BusinessError from "@ohos.base";
1973  try {
1974      geoLocationManager.getCountryCode((err, result) => {
1975          if (err) {
1976              console.log('getCountryCode: err=' + JSON.stringify(err));
1977          }
1978          if (result) {
1979              console.log('getCountryCode: result=' + JSON.stringify(result));
1980          }
1981      });
1982  } catch (err) {
1983      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1984  }
1985  ```
1986
1987
1988## geoLocationManager.getCountryCode
1989
1990getCountryCode(): Promise&lt;CountryCode&gt;;
1991
1992查询当前的国家码。
1993
1994**系统能力**:SystemCapability.Location.Location.Core
1995
1996**返回值**:
1997
1998  | 参数名 | 类型 | 必填 | 说明 |
1999  | -------- | -------- | -------- | -------- |
2000  | Promise&lt;[CountryCode](#countrycode)&gt; | [CountryCode](#countrycode) | NA | 用来接收国家码。 |
2001
2002**错误码**:
2003
2004以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
2005
2006| 错误码ID | 错误信息 |
2007| -------- | ---------------------------------------- |
2008|3301000 | Location service is unavailable.                                            |
2009|3301500 | Failed to query the area information.|
2010
2011**示例**
2012
2013  ```ts
2014  import geoLocationManager from '@ohos.geoLocationManager';
2015  import BusinessError from "@ohos.base";
2016  try {
2017      geoLocationManager.getCountryCode()
2018      .then((result) => {
2019          console.log('promise, getCountryCode: result=' + JSON.stringify(result));
2020      })
2021      .catch((error:number) => {
2022          console.log('promise, getCountryCode: error=' + JSON.stringify(error));
2023      });
2024  } catch (err) {
2025      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
2026  }
2027  ```
2028
2029
2030## geoLocationManager.enableLocationMock
2031
2032enableLocationMock(): void;
2033
2034使能位置模拟功能。
2035
2036**系统能力**:SystemCapability.Location.Location.Core
2037
2038**系统API**:此接口为系统接口。
2039
2040**错误码**:
2041
2042以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
2043
2044| 错误码ID | 错误信息 |
2045| -------- | ---------------------------------------- |
2046|3301000 | Location service is unavailable.                                            |
2047|3301100 | The location switch is off.|
2048
2049**示例**
2050
2051  ```ts
2052  import geoLocationManager from '@ohos.geoLocationManager';
2053  import BusinessError from "@ohos.base";
2054  try {
2055      geoLocationManager.enableLocationMock();
2056  } catch (err) {
2057      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
2058  }
2059  ```
2060
2061
2062## geoLocationManager.disableLocationMock
2063
2064disableLocationMock(): void;
2065
2066去使能位置模拟功能。
2067
2068**系统能力**:SystemCapability.Location.Location.Core
2069
2070**系统API**:此接口为系统接口。
2071
2072**错误码**:
2073
2074以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
2075
2076| 错误码ID | 错误信息 |
2077| -------- | ---------------------------------------- |
2078|3301000 | Location service is unavailable.                                            |
2079|3301100 | The location switch is off.|
2080
2081**示例**
2082
2083  ```ts
2084  import geoLocationManager from '@ohos.geoLocationManager';
2085  import BusinessError from "@ohos.base";
2086  try {
2087      geoLocationManager.disableLocationMock();
2088  } catch (err) {
2089      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
2090  }
2091  ```
2092
2093
2094## geoLocationManager.setMockedLocations
2095
2096setMockedLocations(config: LocationMockConfig): void;
2097
2098设置模拟的位置信息,后面会以该接口中携带的时间间隔上报模拟位置。
2099
2100该接口需要在调用[geoLocationManager.enableLocationMock](#geolocationmanagerenablelocationmock)之后才能调用。
2101
2102**系统能力**:SystemCapability.Location.Location.Core
2103
2104**系统API**:此接口为系统接口。
2105
2106**参数**:
2107
2108  | 参数名 | 类型 | 必填 | 说明 |
2109  | -------- | -------- | -------- | -------- |
2110  | config |  [LocationMockConfig](#locationmockconfig) | 是 | 指示位置模拟的配置参数,包含模拟位置上报的时间间隔和模拟位置数组。 |
2111
2112**错误码**:
2113
2114以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
2115
2116| 错误码ID | 错误信息 |
2117| -------- | ---------------------------------------- |
2118|3301000 | Location service is unavailable.                                            |
2119|3301100 | The location switch is off.|
2120
2121**示例**
2122
2123  ```ts
2124  import geoLocationManager from '@ohos.geoLocationManager';
2125  import BusinessError from "@ohos.base";
2126  let locations:Array<geoLocationManager.Location> = [
2127      {"latitude": 30.12, "longitude": 120.11, "altitude": 123, "accuracy": 1, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 1000000000, "additionSize": 0, "isFromMock": true},
2128      {"latitude": 31.13, "longitude": 121.11, "altitude": 123, "accuracy": 2, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 2000000000, "additionSize": 0, "isFromMock": true},
2129      {"latitude": 32.14, "longitude": 122.11, "altitude": 123, "accuracy": 3, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 3000000000, "additionSize": 0, "isFromMock": true},
2130      {"latitude": 33.15, "longitude": 123.11, "altitude": 123, "accuracy": 4, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 4000000000, "additionSize": 0, "isFromMock": true},
2131      {"latitude": 34.16, "longitude": 124.11, "altitude": 123, "accuracy": 5, "speed": 5.2, "timeStamp": 16594326109, "direction": 123.11, "timeSinceBoot": 5000000000, "additionSize": 0, "isFromMock": true}
2132  ];
2133  let config:geoLocationManager.LocationMockConfig = {"timeInterval": 5, "locations": locations};
2134  try {
2135      geoLocationManager.enableLocationMock();
2136      geoLocationManager.setMockedLocations(config);
2137  } catch (err) {
2138      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
2139  }
2140  ```
2141
2142
2143## geoLocationManager.enableReverseGeocodingMock
2144
2145enableReverseGeocodingMock(): void;
2146
2147使能逆地理编码模拟功能。
2148
2149**系统能力**:SystemCapability.Location.Location.Core
2150
2151**系统API**:此接口为系统接口。
2152
2153**错误码**:
2154
2155以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
2156
2157| 错误码ID | 错误信息 |
2158| -------- | ---------------------------------------- |
2159|3301000 | Location service is unavailable.                                            |
2160
2161**示例**
2162
2163  ```ts
2164  import geoLocationManager from '@ohos.geoLocationManager';
2165  import BusinessError from "@ohos.base";
2166  try {
2167      geoLocationManager.enableReverseGeocodingMock();
2168  } catch (err) {
2169      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
2170  }
2171  ```
2172
2173
2174## geoLocationManager.disableReverseGeocodingMock
2175
2176disableReverseGeocodingMock(): void;
2177
2178去使能逆地理编码模拟功能。
2179
2180**系统能力**:SystemCapability.Location.Location.Core
2181
2182**系统API**:此接口为系统接口。
2183
2184**错误码**:
2185
2186以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
2187
2188| 错误码ID | 错误信息 |
2189| -------- | ---------------------------------------- |
2190|3301000 | Location service is unavailable.                                            |
2191
2192**示例**
2193
2194  ```ts
2195  import geoLocationManager from '@ohos.geoLocationManager';
2196  import BusinessError from "@ohos.base";
2197  try {
2198      geoLocationManager.disableReverseGeocodingMock();
2199  } catch (err) {
2200      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
2201  }
2202  ```
2203
2204
2205## geoLocationManager.setReverseGeocodingMockInfo
2206
2207setReverseGeocodingMockInfo(mockInfos: Array&lt;ReverseGeocodingMockInfo&gt;): void;
2208
2209设置逆地理编码模拟功能的配置信息,包含了位置和地名的对应关系,后续进行逆地理编码查询时如果位置信息位于配置信息中,就返回对应的地名。
2210
2211该接口需要在调用[geoLocationManager.enableReverseGeocodingMock](#geolocationmanagerenablereversegeocodingmock)之后才能调用。
2212
2213**系统能力**:SystemCapability.Location.Location.Core
2214
2215**系统API**:此接口为系统接口。
2216
2217**参数**:
2218
2219  | 参数名 | 类型 | 必填 | 说明 |
2220  | -------- | -------- | -------- | -------- |
2221  | mockInfos | Array&lt;[ReverseGeocodingMockInfo](#reversegeocodingmockinfo)&gt; | 是 | 指示逆地理编码模拟功能的配置参数数组。逆地理编码模拟功能的配置参数包含了一个位置和一个地名。 |
2222
2223**错误码**:
2224
2225以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
2226
2227| 错误码ID | 错误信息 |
2228| -------- | ---------------------------------------- |
2229|3301000 | Location service is unavailable.                                            |
2230
2231**示例**
2232
2233  ```ts
2234  import geoLocationManager from '@ohos.geoLocationManager';
2235  import BusinessError from "@ohos.base";
2236  let mockInfos:Array<geoLocationManager.ReverseGeocodingMockInfo> = [
2237      {"location": {"locale": "zh", "latitude": 30.12, "longitude": 120.11, "maxItems": 1}, "geoAddress": {"locale": "zh", "latitude": 30.12, "longitude": 120.11, "isFromMock": true}},
2238      {"location": {"locale": "zh", "latitude": 31.12, "longitude": 121.11, "maxItems": 1}, "geoAddress": {"locale": "zh", "latitude": 31.12, "longitude": 121.11, "isFromMock": true}},
2239      {"location": {"locale": "zh", "latitude": 32.12, "longitude": 122.11, "maxItems": 1}, "geoAddress": {"locale": "zh", "latitude": 32.12, "longitude": 122.11, "isFromMock": true}},
2240      {"location": {"locale": "zh", "latitude": 33.12, "longitude": 123.11, "maxItems": 1}, "geoAddress": {"locale": "zh", "latitude": 33.12, "longitude": 123.11, "isFromMock": true}},
2241      {"location": {"locale": "zh", "latitude": 34.12, "longitude": 124.11, "maxItems": 1}, "geoAddress": {"locale": "zh", "latitude": 34.12, "longitude": 124.11, "isFromMock": true}},
2242  ];
2243  try {
2244      geoLocationManager.enableReverseGeocodingMock();
2245      geoLocationManager.setReverseGeocodingMockInfo(mockInfos);
2246  } catch (err) {
2247      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
2248  }
2249  ```
2250
2251
2252## geoLocationManager.isLocationPrivacyConfirmed
2253
2254isLocationPrivacyConfirmed(type: LocationPrivacyType): boolean;
2255
2256查询用户是否同意定位服务隐私申明,是否同意启用定位服务。只有系统应用才能调用。
2257
2258**系统API**:此接口为系统接口。
2259
2260**系统能力**:SystemCapability.Location.Location.Core
2261
2262**参数**:
2263
2264  | 参数名 | 类型 | 必填 | 说明 |
2265  | -------- | -------- | -------- | -------- |
2266  | type |  [LocationPrivacyType](#locationprivacytype)| 是 | 指定隐私申明场景,例如开机向导中的隐私申明、开启网络定位功能时弹出的隐私申明等。 |
2267
2268**返回值**:
2269
2270  | 参数名 | 类型 | 必填 | 说明 |
2271  | -------- | -------- | -------- | -------- |
2272  | boolean  | boolean | NA | 表示用户是否同意定位服务隐私申明。 |
2273
2274**错误码**:
2275
2276以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
2277
2278| 错误码ID | 错误信息 |
2279| -------- | ---------------------------------------- |
2280|3301000 | Location service is unavailable.                                            |
2281
2282**示例**
2283
2284  ```ts
2285  import geoLocationManager from '@ohos.geoLocationManager';
2286  import BusinessError from "@ohos.base";
2287  try {
2288      let isConfirmed = geoLocationManager.isLocationPrivacyConfirmed(1);
2289  } catch (err) {
2290      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
2291  }
2292  ```
2293
2294
2295## geoLocationManager.setLocationPrivacyConfirmStatus
2296
2297setLocationPrivacyConfirmStatus(type: LocationPrivacyType, isConfirmed: boolean): void;
2298
2299设置用户勾选定位服务隐私申明的状态,记录用户是否同意启用定位服务。只有系统应用才能调用。
2300
2301**系统API**:此接口为系统接口。
2302
2303**需要权限**:ohos.permission.MANAGE_SECURE_SETTINGS
2304
2305**系统能力**:SystemCapability.Location.Location.Core
2306
2307**参数**:
2308
2309  | 参数名 | 类型 | 必填 | 说明 |
2310  | -------- | -------- | -------- | -------- |
2311  | type | [LocationPrivacyType](#locationprivacytype) | 是 | 指定隐私申明场景,例如开机向导中的隐私申明、开启网络定位功能时弹出的隐私申明等。 |
2312  | isConfirmed | boolean | 是 | 表示用户是否同意定位服务隐私申明。 |
2313
2314**错误码**:
2315
2316以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
2317
2318| 错误码ID | 错误信息 |
2319| -------- | ---------------------------------------- |
2320|3301000 | Location service is unavailable.                                            |
2321
2322**示例**
2323
2324  ```ts
2325  import geoLocationManager from '@ohos.geoLocationManager';
2326  import BusinessError from "@ohos.base";
2327  try {
2328      geoLocationManager.setLocationPrivacyConfirmStatus(1, true);
2329  } catch (err) {
2330      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
2331  }
2332  ```
2333
2334
2335## geoLocationManager.getLocatingRequiredData<sup>10+</sup>
2336
2337getLocatingRequiredData(config: LocatingRequiredDataConfig): Promise&lt;Array&lt;LocatingRequiredData&gt;&gt;;
2338
2339单次获取定位业务所需数据,包含WiFi蓝牙扫描信息,使用Promise方式异步返回结果。
2340
2341**需要权限**:ohos.permission.LOCATIONohos.permission.APPROXIMATELY_LOCATION
2342
2343**系统能力**:SystemCapability.Location.Location.Core
2344
2345**系统API**:此接口为系统接口。
2346
2347**参数**:
2348
2349  | 参数名 | 类型 | 必填 | 说明 |
2350  | -------- | -------- | -------- | -------- |
2351  | config | [LocatingRequiredDataConfig](#locatingrequireddataconfig10) | 是 | 表示获取定位所需数据时的配置参数。 |
2352
2353**返回值**:
2354
2355  | 参数名 | 类型 | 必填 | 说明 |
2356  | -------- | -------- | -------- | -------- |
2357  | Promise&lt;Array&lt;[LocatingRequiredData](#locatingrequireddata10)&gt;&gt;  | [LocatingRequiredData](#locatingrequireddata10) | NA | 用来接收定位业务所需数据,包含WiFi蓝牙扫描信息。 |
2358
2359**错误码**:
2360
2361以下错误码的详细介绍请参见[位置服务子系统错误码](../errorcodes/errorcode-geoLocationManager.md)。
2362
2363| 错误码ID | 错误信息 |
2364| -------- | ---------------------------------------- |
2365|3301800  | Failed to start WiFi or Bluetooth scanning.                    |
2366
2367**示例**
2368
2369  ```ts
2370  import geoLocationManager from '@ohos.geoLocationManager';
2371  import BusinessError from "@ohos.base";
2372  let config:geoLocationManager.LocatingRequiredDataConfig = {'type': 1, 'needStartScan': true, 'scanInterval': 10000};
2373  try {
2374      geoLocationManager.getLocatingRequiredData(config).then((result) => {
2375          console.log('getLocatingRequiredData return: ' + JSON.stringify(result));
2376      })
2377      .catch((error:number) => {
2378          console.log('promise, getLocatingRequiredData: error=' + JSON.stringify(error));
2379      });
2380  } catch (err) {
2381      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
2382  }
2383  ```