• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.geoLocationManager (位置服务)
2
3位置服务提供GNSS定位、网络定位、地理编码、逆地理编码、国家码和地理围栏等基本功能。
4
5> **说明:**
6>
7> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8> 本模块能力仅支持WGS-84坐标系。
9
10## 申请权限
11
12应用在使用系统能力前,需要检查是否已经获取用户授权访问设备位置信息。如未获得授权,可以向用户申请需要的位置权限,申请方式请参考下文。
13
14系统提供的定位权限有:
15- ohos.permission.LOCATION
16
17- ohos.permission.APPROXIMATELY_LOCATION
18
19- ohos.permission.LOCATION_IN_BACKGROUND
20
21访问设备的位置信息,必须申请权限,并且获得用户授权。
22
23API9之前的版本,申请ohos.permission.LOCATION即可。
24
25API9及之后的版本,需要申请ohos.permission.APPROXIMATELY_LOCATION或者同时申请ohos.permission.APPROXIMATELY_LOCATIONohos.permission.LOCATION;无法单独申请ohos.permission.LOCATION26
27| 使用的API版本 | 申请位置权限 | 申请结果 | 位置的精确度 |
28| -------- | -------- | -------- | -------- |
29| 小于9 | ohos.permission.LOCATION | 成功 | 获取到精准位置,精准度在米级别。 |
30| 大于等于9 | ohos.permission.LOCATION | 失败 | 无法获取位置。 |
31| 大于等于9 | ohos.permission.APPROXIMATELY_LOCATION | 成功 | 获取到模糊位置,精确度为5公里。 |
32| 大于等于9 | ohos.permission.APPROXIMATELY_LOCATIONohos.permission.LOCATION | 成功 | 获取到精准位置,精准度在米级别。 |
33
34如果应用在后台运行时也需要访问设备位置,需要申请ohos.permission.LOCATION_IN_BACKGROUND权限或申请LOCATION类型的长时任务,这样应用在切入后台之后,系统可以继续上报位置信息。
35
36应用如需使用ohos.permission.LOCATION_IN_BACKGROUND权限,需要在设置界面由用户手动授予,具体授权方式可参考[ohos.permission.LOCATION_IN_BACKGROUND权限说明](../../security/AccessToken/permissions-for-all.md#ohospermissionlocation_in_background)。
37
38长时任务申请可参考[长时任务](../../task-management/continuous-task.md)。
39
40开发者可以在应用配置文件中声明所需要的权限,具体可参考[向用户申请授权](../../security/AccessToken/request-user-authorization.md)。
41
42
43## 导入模块
44
45```ts
46import geoLocationManager from '@ohos.geoLocationManager';
47```
48
49
50## ReverseGeoCodeRequest
51
52逆地理编码请求参数。
53
54**系统能力**:SystemCapability.Location.Location.Geocoder
55
56| 名称 | 类型 | 可读 | 可写 | 说明 |
57| -------- | -------- | -------- | -------- | -------- |
58| locale | string | 是 | 是 | 指定位置描述信息的语言,“zh”代表中文,“en”代表英文。 |
59| latitude | number | 是 | 是 | 表示纬度信息,正值表示北纬,负值表示南纬。取值范围为-90到90。 |
60| longitude | number | 是 | 是 | 表示经度信息,正值表示东经,负值表示西经。取值范围为-180到180。 |
61| maxItems | number | 是 | 是 | 指定返回位置信息的最大个数。取值范围为大于等于0,推荐该值小于10。 |
62
63
64## GeoCodeRequest
65
66地理编码请求参数。
67
68**系统能力**:SystemCapability.Location.Location.Geocoder
69
70| 名称 | 类型 | 可读|可写 | 说明 |
71| -------- | -------- | -------- | -------- | -------- |
72| locale | string | 是 | 是 | 表示位置描述信息的语言,“zh”代表中文,“en”代表英文。 |
73| description | string | 是 | 是 | 表示位置信息描述,如“上海市浦东新区xx路xx号”。 |
74| maxItems | number | 是 | 是 | 表示返回位置信息的最大个数。取值范围为大于等于0,推荐该值小于10。 |
75| minLatitude | number | 是 | 是 | 表示最小纬度信息,与下面三个参数一起,表示一个经纬度范围。取值范围为-90到90。 |
76| minLongitude | number | 是 | 是 | 表示最小经度信息。取值范围为-180到180。 |
77| maxLatitude | number | 是 | 是 | 表示最大纬度信息。取值范围为-90到90。 |
78| maxLongitude | number | 是 | 是 | 表示最大经度信息。取值范围为-180到180。 |
79
80
81## GeoAddress
82
83地理编码地址信息。
84
85**系统能力**:SystemCapability.Location.Location.Geocoder
86
87| 名称 | 类型 | 可读|可写 | 说明 |
88| -------- | -------- | -------- | -------- | -------- |
89| latitude | number | 是 | 否  | 表示纬度信息,正值表示北纬,负值表示南纬。取值范围为-90到90。 |
90| longitude | number | 是 | 否  | 表示经度信息,正值表示东经,负值表是西经。取值范围为-180到180。 |
91| locale | string | 是 | 否  | 表示位置描述信息的语言,“zh”代表中文,“en”代表英文。 |
92| placeName | string | 是 | 否  | 表示地区信息。 |
93| countryCode | string | 是 | 否  | 表示国家码信息。 |
94| countryName | string| 是 | 否 | 表示国家信息。 |
95| administrativeArea | string | 是 | 否 | 表示国家以下的一级行政区,一般是省/州。 |
96| subAdministrativeArea | string | 是 | 否 | 表示国家以下的二级行政区,一般是市。 |
97| locality | string | 是 | 否 | 表示城市信息,一般是市。 |
98| subLocality | string | 是 | 否 | 表示子城市信息,一般是区/县。 |
99| roadName | string | 是 | 否 | 表示路名信息。 |
100| subRoadName | string | 是 | 否 | 表示子路名信息。 |
101| premises | string| 是 | 否| 表示门牌号信息。 |
102| postalCode | string | 是 | 否 | 表示邮政编码信息。 |
103| phoneNumber | string | 是 | 否 | 表示联系方式信息。 |
104| addressUrl | string | 是 | 否 | 表示位置信息附件的网址信息。 |
105| descriptions | Array<string> | 是 | 否 | 表示附加的描述信息。目前包含城市编码cityCode(Array下标为0)和区划编码adminCode(Array下标为1),例如["025","320114001"]。 |
106| descriptionsSize | number | 是 | 否 | 表示附加的描述信息数量。取值范围为大于等于0,推荐该值小于10。 |
107
108
109## LocationRequest
110
111位置信息请求参数。
112
113**系统能力**:SystemCapability.Location.Location.Core
114
115| 名称 | 类型 | 可读|可写 | 说明 |
116| -------- | -------- | -------- | -------- | -------- |
117| priority | [LocationRequestPriority](#locationrequestpriority) | 是 | 是 | 表示优先级信息。当scenario取值为UNSET时,priority参数生效,否则priority参数不生效;当scenario和priority均取值为UNSET时,无法发起定位请求。取值范围见[LocationRequestPriority](#locationrequestpriority)的定义。 |
118| scenario | [LocationRequestScenario](#locationrequestscenario) | 是 | 是 | 表示场景信息。当scenario取值为UNSET时,priority参数生效,否则priority参数不生效;当scenario和priority均取值为UNSET时,无法发起定位请求。取值范围见[LocationRequestScenario](#locationrequestscenario)的定义。 |
119| timeInterval | number | 是 | 是 | 表示上报位置信息的时间间隔,单位是秒。默认值为1,取值范围为大于等于0。 |
120| distanceInterval | number | 是 | 是 | 表示上报位置信息的距离间隔。单位是米,默认值为0,取值范围为大于等于0。 |
121| maxAccuracy | number | 是 | 是 | 表示精度信息,单位是米。仅在精确位置功能场景下有效,模糊位置功能生效场景下该字段无意义。默认值为0,取值范围为大于等于0。 |
122
123
124## CurrentLocationRequest
125
126当前位置信息请求参数。
127
128**系统能力**:SystemCapability.Location.Location.Core
129
130| 名称 | 类型 | 可读|可写 | 说明 |
131| -------- | -------- | -------- | -------- | -------- |
132| priority | [LocationRequestPriority](#locationrequestpriority) | 是 | 是 | 表示优先级信息。当scenario取值为UNSET时,priority参数生效,否则priority参数不生效;当scenario和priority均取值为UNSET时,无法发起定位请求。取值范围见[LocationRequestPriority](#locationrequestpriority)的定义。|
133| scenario | [LocationRequestScenario](#locationrequestscenario) | 是 | 是 | 表示场景信息。当scenario取值为UNSET时,priority参数生效,否则priority参数不生效;当scenario和priority均取值为UNSET时,无法发起定位请求。取值范围见[LocationRequestScenario](#locationrequestscenario)的定义。 |
134| maxAccuracy | number | 是 | 是| 表示精度信息,单位是米。仅在精确位置功能场景下有效,模糊位置功能生效场景下该字段无意义。默认值为0,取值范围为大于等于0。 |
135| timeoutMs | number | 是 | 是 | 表示超时时间,单位是毫秒,最小为1000毫秒。取值范围为大于等于1000。 |
136
137
138## SatelliteStatusInfo
139
140卫星状态信息。
141
142**系统能力**:SystemCapability.Location.Location.Gnss
143
144| 名称 | 类型 | 可读|可写 | 说明 |
145| -------- | -------- | -------- | -------- | -------- |
146| satellitesNumber | number | 是 | 否 | 表示卫星个数。取值范围为大于等于0。 |
147| satelliteIds | Array<number> | 是 | 否 | 表示每个卫星的ID,数组类型。取值范围为大于等于0。 |
148| carrierToNoiseDensitys | Array<number> | 是 | 否 | 表示载波噪声功率谱密度比,即cn0。取值范围为大于0。 |
149| altitudes | Array<number> | 是 | 否 | 表示卫星高度角信息。单位是“度”,取值范围为-90到90。 |
150| azimuths | Array<number> | 是 | 否 | 表示方位角。单位是“度”,取值范围为0到360。 |
151| carrierFrequencies | Array<number> | 是 | 否 | 表示载波频率。单位是Hz,取值范围为大于等于0。 |
152
153
154## CachedGnssLocationsRequest
155
156请求订阅GNSS缓存位置上报功能接口的配置参数。
157
158**系统能力**:SystemCapability.Location.Location.Gnss
159
160| 名称 | 类型 | 可读|可写 | 说明 |
161| -------- | -------- | -------- | -------- | -------- |
162| reportingPeriodSec | number | 是 | 是 | 表示GNSS缓存位置上报的周期,单位是毫秒。取值范围为大于0。 |
163| wakeUpCacheQueueFull | boolean | 是 | 是  | true表示GNSS芯片底层缓存队列满之后会主动唤醒AP芯片,并把缓存位置上报给应用。<br/>false表示GNSS芯片底层缓存队列满之后不会主动唤醒AP芯片,会把缓存位置直接丢弃。 |
164
165
166## Geofence
167
168GNSS围栏的配置参数。目前只支持圆形围栏。
169
170**系统能力**:SystemCapability.Location.Location.Geofence
171
172| 名称 | 类型 | 可读|可写 | 说明 |
173| -------- | -------- | -------- | -------- | -------- |
174| latitude | number | 是 | 是 |表示纬度。取值范围为-90到90。 |
175| longitude | number | 是 |是 | 表示经度。取值范围为-180到180。 |
176| radius | number | 是 |是 | 表示圆形围栏的半径。单位是米,取值范围为大于0。 |
177| expiration | number | 是 |是 | 围栏存活的时间,单位是毫秒。取值范围为大于0。 |
178
179
180## GeofenceRequest
181
182请求添加GNSS围栏消息中携带的参数,包括定位优先级、定位场景和围栏信息。
183
184**系统能力**:SystemCapability.Location.Location.Geofence
185
186| 名称 | 类型 | 可读|可写 | 说明 |
187| -------- | -------- | -------- | -------- | -------- |
188| scenario | [LocationRequestScenario](#locationrequestscenario) | 是 | 是  |  表示定位场景。 |
189| geofence |  [Geofence](#geofence)| 是 | 是  |  表示围栏信息。 |
190
191
192## LocationCommand
193
194扩展命令参数。
195
196**系统能力**:SystemCapability.Location.Location.Core
197
198| 名称 | 类型 | 可读|可写 | 说明 |
199| -------- | -------- | -------- | -------- | -------- |
200| scenario | [LocationRequestScenario](#locationrequestscenario)  | 是 | 是  | 表示定位场景。 |
201| command | string | 是 | 是  | 扩展命令字符串。 |
202
203
204## Location
205
206位置信息。
207
208**系统能力**:SystemCapability.Location.Location.Core
209
210| 名称 | 类型 | 可读|可写 | 说明 |
211| -------- | -------- | -------- | -------- | -------- |
212| latitude | number| 是 | 否 | 表示纬度信息,正值表示北纬,负值表示南纬。取值范围为-90到90。 |
213| longitude | number| 是 | 否 | 表示经度信息,正值表示东经,负值表是西经。取值范围为-180到180。 |
214| altitude | number | 是 | 否 | 表示高度信息,单位米。 |
215| accuracy | number | 是 | 否 | 表示精度信息,单位米。 |
216| speed | number | 是 | 否 |表示速度信息,单位米每秒。 |
217| timeStamp | number | 是 | 否 | 表示位置时间戳,UTC格式。 |
218| direction | number | 是 | 否 | 表示航向信息。单位是“度”,取值范围为0到360。 |
219| timeSinceBoot | number | 是 | 否 | 表示位置时间戳,开机时间格式。 |
220| additions | Array&lt;string&gt; | 是 | 否 | 附加信息。 |
221| additionSize | number | 是 | 否 | 附加信息数量。取值范围为大于等于0。
222
223
224
225
226## CountryCode
227
228国家码信息,包含国家码字符串和国家码的来源信息。
229
230**系统能力**:SystemCapability.Location.Location.Core
231
232| 名称 | 类型 | 可读|可写 | 说明 |
233| -------- | -------- | -------- | -------- | -------- |
234| country | string | 是 | 否 | 表示国家码字符串。 |
235| type |  [CountryCodeType](#countrycodetype) | 是 | 否 | 表示国家码信息来源。 |
236
237## LocationRequestPriority
238
239位置请求中位置信息优先级类型。
240
241**系统能力**:SystemCapability.Location.Location.Core
242
243| 名称 | 值 | 说明 |
244| -------- | -------- | -------- |
245| UNSET | 0x200 | 表示未设置优先级,表示[LocationRequestPriority](#locationrequestpriority)无效。 |
246| ACCURACY | 0x201 | 表示精度优先。<br/>定位精度优先策略主要以GNSS定位技术为主,在开阔场景下可以提供米级的定位精度,具体性能指标依赖用户设备的定位硬件能力,但在室内等强遮蔽定位场景下,无法提供准确的位置服务。 |
247| LOW_POWER | 0x202 | 表示低功耗优先。<br/>低功耗定位优先策略主要使用基站定位和WLAN、蓝牙定位技术,也可以同时提供室内和户外场景下的位置服务,因为其依赖周边基站、可见WLAN、蓝牙设备的分布情况,定位结果的精度波动范围较大,如果对定位结果精度要求不高,或者使用场景多在有基站、可见WLAN、蓝牙设备高密度分布的情况下,推荐使用,可以有效节省设备功耗。 |
248| FIRST_FIX | 0x203 | 表示快速获取位置优先,如果应用希望快速拿到一个位置,可以将优先级设置为该字段。<br/>快速定位优先策略会同时使用GNSS定位、基站定位和WLAN、蓝牙定位技术,以便室内和户外场景下,通过此策略都可以获得位置结果,当各种定位技术都有提供位置结果时,系统会选择其中精度较好的结果返回给应用。因为对各种定位技术同时使用,对设备的硬件资源消耗较大,功耗也较大。 |
249
250
251## LocationRequestScenario
252
253  位置请求中定位场景类型。
254
255**系统能力**:SystemCapability.Location.Location.Core
256
257| 名称 | 值 | 说明 |
258| -------- | -------- | -------- |
259| UNSET | 0x300 | 表示未设置场景信息。<br/>表示[LocationRequestScenario](#locationrequestscenario)字段无效。 |
260| NAVIGATION | 0x301 | 表示导航场景。<br/>适用于在户外定位设备实时位置的场景,如车载、步行导航。<br/>在此场景下,为保证系统提供位置结果精度最优,主要使用GNSS定位技术提供定位服务<br/>此场景默认以最小1秒间隔上报定位结果。 |
261| TRAJECTORY_TRACKING | 0x302 | 表示运动轨迹记录场景。<br/>适用于记录用户位置轨迹的场景,如运动类应用记录轨迹功能。主要使用GNSS定位技术提供定位服务。<br/>此场景默认以最小1秒间隔上报定位结果。 |
262| CAR_HAILING | 0x303 | 表示打车场景。<br/>适用于用户出行打车时定位当前位置的场景,如网约车类应用。<br/>此场景默认以最小1秒间隔上报定位结果。 |
263| DAILY_LIFE_SERVICE | 0x304 | 表示日常服务使用场景。<br/>适用于不需要定位用户精确位置的使用场景,如新闻资讯、网购、点餐类应用,做推荐、推送时定位用户大致位置即可。<br/>此场景默认以最小1秒间隔上报定位结果。 |
264| NO_POWER | 0x305 | 表示无功耗功场景,这种场景下不会主动触发定位,会在其他应用定位时,才给当前应用返回位置。 |
265
266## CountryCodeType
267
268国家码来源类型。
269
270**系统能力**:SystemCapability.Location.Location.Core
271
272| 名称 | 值 | 说明 |
273| -------- | -------- | -------- |
274| COUNTRY_CODE_FROM_LOCALE | 1 | 从全球化模块的语言配置信息中获取到的国家码。 |
275| COUNTRY_CODE_FROM_SIM | 2 | 从SIM卡中获取到的国家码。 |
276| COUNTRY_CODE_FROM_LOCATION | 3 | 基于用户的位置信息,通过逆地理编码查询到的国家码。 |
277| COUNTRY_CODE_FROM_NETWORK | 4 | 从蜂窝网络注册信息中获取到的国家码。 |
278
279
280## geoLocationManager.on('locationChange')
281
282on(type: 'locationChange', request: LocationRequest, callback: Callback&lt;Location&gt;): void
283
284开启位置变化订阅,并发起定位请求。
285
286**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
287
288**系统能力**:SystemCapability.Location.Location.Core
289
290**参数:**
291
292  | 参数名 | 类型 | 必填 | 说明 |
293  | -------- | -------- | -------- | -------- |
294  | type | string | 是 | 设置事件类型。type为“locationChange”,表示位置变化。 |
295  | request |  [LocationRequest](#locationrequest) | 是 | 设置位置请求参数。 |
296  | callback | Callback&lt;[Location](#location)&gt; | 是 | 接收位置变化状态变化监听。 |
297
298**错误码**:
299
300以下错误码的详细介绍请参见[位置服务子系统错误码](errorcode-geoLocationManager.md)。
301
302| 错误码ID | 错误信息 |
303| -------- | ---------------------------------------- |
304|3301000 | Location service is unavailable.                                            |
305|3301100 | The location switch is off.                                                 |
306|3301200 | Failed to obtain the geographical location.                                       |
307
308**示例**
309
310  ```ts
311  import geoLocationManager from '@ohos.geoLocationManager';
312  import BusinessError from "@ohos.base";
313  let requestInfo:geoLocationManager.LocationRequest = {'priority': geoLocationManager.LocationRequestPriority.FIRST_FIX, 'scenario': geoLocationManager.LocationRequestScenario.UNSET, 'timeInterval': 1, 'distanceInterval': 0, 'maxAccuracy': 0};
314  let locationChange = (location:geoLocationManager.Location):void => {
315      console.log('locationChanger: data: ' + JSON.stringify(location));
316  };
317  try {
318      geoLocationManager.on('locationChange', requestInfo, locationChange);
319  } catch (err) {
320      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
321  }
322
323  ```
324
325
326## geoLocationManager.off('locationChange')
327
328off(type: 'locationChange', callback?: Callback&lt;Location&gt;): void
329
330关闭位置变化订阅,并删除对应的定位请求。
331
332**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
333
334**系统能力**:SystemCapability.Location.Location.Core
335
336**参数:**
337
338  | 参数名 | 类型 | 必填 | 说明 |
339  | -------- | -------- | -------- | -------- |
340  | type | string | 是 | 设置事件类型。type为“locationChange”,表示位置变化。 |
341  | callback | Callback&lt;[Location](#location)&gt; | 否 | 需要取消订阅的回调函数。若无此参数,则取消当前类型的所有订阅。 |
342
343**错误码**:
344
345以下错误码的详细介绍请参见[位置服务子系统错误码](errorcode-geoLocationManager.md)。
346
347| 错误码ID | 错误信息 |
348| -------- | ---------------------------------------- |
349|3301000 | Location service is unavailable.                                            |
350|3301100 | The location switch is off.                                                 |
351|3301200 | Failed to obtain the geographical location.                                       |
352
353**示例**
354
355  ```ts
356  import geoLocationManager from '@ohos.geoLocationManager';
357  import BusinessError from "@ohos.base";
358  let requestInfo:geoLocationManager.LocationRequest = {'priority': geoLocationManager.LocationRequestPriority.FIRST_FIX, 'scenario': geoLocationManager.LocationRequestScenario.UNSET, 'timeInterval': 1, 'distanceInterval': 0, 'maxAccuracy': 0};
359  let locationChange = (location:geoLocationManager.Location):void => {
360    console.log('locationChanger: data: ' + JSON.stringify(location));
361  };
362  try {
363      geoLocationManager.on('locationChange', requestInfo, locationChange);
364      geoLocationManager.off('locationChange', locationChange);
365  } catch (err) {
366      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
367  }
368  ```
369
370
371## geoLocationManager.on('locationEnabledChange')
372
373on(type: 'locationEnabledChange', callback: Callback&lt;boolean&gt;): void
374
375订阅位置服务状态变化。
376
377**系统能力**:SystemCapability.Location.Location.Core
378
379**参数:**
380
381  | 参数名 | 类型 | 必填 | 说明 |
382  | -------- | -------- | -------- | -------- |
383  | type | string | 是 | 设置事件类型。type为“locationEnabledChange”,表示位置服务状态。 |
384  | callback | Callback&lt;boolean&gt; | 是 | 接收位置服务状态变化监听。 |
385
386**错误码**:
387
388以下错误码的详细介绍请参见[位置服务子系统错误码](errorcode-geoLocationManager.md)。
389
390| 错误码ID | 错误信息 |
391| -------- | ---------------------------------------- |
392|3301000 | Location service is unavailable.                                            |
393
394**示例**
395
396  ```ts
397  import geoLocationManager from '@ohos.geoLocationManager';
398  import BusinessError from "@ohos.base";
399  let locationEnabledChange = (state:boolean):void => {
400      console.log('locationEnabledChange: ' + JSON.stringify(state));
401  }
402  try {
403      geoLocationManager.on('locationEnabledChange', locationEnabledChange);
404  } catch (err) {
405      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
406  }
407  ```
408
409
410## geoLocationManager.off('locationEnabledChange')
411
412off(type: 'locationEnabledChange', callback?: Callback&lt;boolean&gt;): void;
413
414取消订阅位置服务状态变化。
415
416**系统能力**:SystemCapability.Location.Location.Core
417
418**参数**:
419
420  | 参数名 | 类型 | 必填 | 说明 |
421  | -------- | -------- | -------- | -------- |
422  | type | string | 是 | 设置事件类型。type为“locationEnabledChange”,表示位置服务状态。 |
423  | callback | Callback&lt;boolean&gt; | 否 | 需要取消订阅的回调函数。若无此参数,则取消当前类型的所有订阅。 |
424
425**错误码**:
426
427以下错误码的详细介绍请参见[位置服务子系统错误码](errorcode-geoLocationManager.md)。
428
429| 错误码ID | 错误信息 |
430| -------- | ---------------------------------------- |
431|3301000 | Location service is unavailable.                                            |
432
433**示例**
434
435  ```ts
436  import geoLocationManager from '@ohos.geoLocationManager';
437  import BusinessError from "@ohos.base";
438  let locationEnabledChange = (state:boolean):void => {
439      console.log('locationEnabledChange: state: ' + JSON.stringify(state));
440  }
441  try {
442      geoLocationManager.on('locationEnabledChange', locationEnabledChange);
443      geoLocationManager.off('locationEnabledChange', locationEnabledChange);
444  } catch (err) {
445      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
446  }
447  ```
448
449
450## geoLocationManager.on('cachedGnssLocationsChange')
451
452on(type: 'cachedGnssLocationsChange', request: CachedGnssLocationsRequest, callback: Callback&lt;Array&lt;Location&gt;&gt;): void;
453
454订阅缓存GNSS定位结果上报事件。该接口功能由gnss定位芯片提供(仅部分型号支持),如果设备无此芯片或使用的芯片型号不支持该功能,则返回错误码801(Capability not supported)。
455
456**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
457
458**系统能力**:SystemCapability.Location.Location.Gnss
459
460**参数**:
461
462  | 参数名 | 类型 | 必填 | 说明 |
463  | -------- | -------- | -------- | -------- |
464  | type | string | 是 | 设置事件类型。type为“cachedGnssLocationsChange”,表示GNSS缓存定位结果上报。 |
465  | request |  [CachedGnssLocationsRequest](#cachedgnsslocationsrequest) | 是 | GNSS缓存功能配置参数 |
466  | callback | Callback&lt;Array&lt;[Location](#location)&gt;&gt; | 是 | 接收GNSS缓存位置上报。 |
467
468**错误码**:
469
470以下错误码的详细介绍请参见[位置服务子系统错误码](errorcode-geoLocationManager.md)。
471
472| 错误码ID | 错误信息 |
473| -------- | ---------------------------------------- |
474|3301000 | Location service is unavailable.                                            |
475|3301100 | The location switch is off.                                                 |
476|3301200 | Failed to obtain the geographical location.                                       |
477
478**示例**
479
480  ```ts
481  import geoLocationManager from '@ohos.geoLocationManager';
482  import BusinessError from "@ohos.base";
483  let cachedLocationsCb = (locations:Array<geoLocationManager.Location>):void => {
484      console.log('cachedGnssLocationsChange: locations: ' + JSON.stringify(locations));
485  }
486  let requestInfo:geoLocationManager.CachedGnssLocationsRequest = {'reportingPeriodSec': 10, 'wakeUpCacheQueueFull': true};
487  try {
488      geoLocationManager.on('cachedGnssLocationsChange', requestInfo, cachedLocationsCb);
489  } catch (err) {
490      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
491  }
492  ```
493
494
495## geoLocationManager.off('cachedGnssLocationsChange')
496
497off(type: 'cachedGnssLocationsChange', callback?: Callback&lt;Array&lt;Location&gt;&gt;): void;
498
499取消订阅缓存GNSS定位结果上报事件。该接口功能由gnss定位芯片提供(仅部分型号支持),如果设备无此芯片或使用的芯片型号不支持该功能,则返回错误码801(Capability not supported)。
500
501**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
502
503**系统能力**:SystemCapability.Location.Location.Gnss
504
505**参数**:
506
507  | 参数名 | 类型 | 必填 | 说明 |
508  | -------- | -------- | -------- | -------- |
509  | type | string | 是 | 设置事件类型。type为“cachedGnssLocationsChange”,表示GNSS缓存定位结果上报。 |
510  | callback | Callback&lt;Array&lt;[Location](#location)&gt;&gt; | 否 | 需要取消订阅的回调函数。若无此参数,则取消当前类型的所有订阅。 |
511
512**错误码**:
513
514以下错误码的详细介绍请参见[位置服务子系统错误码](errorcode-geoLocationManager.md)。
515
516| 错误码ID | 错误信息 |
517| -------- | ---------------------------------------- |
518|3301000 | Location service is unavailable.                                            |
519|3301100 | The location switch is off.                                                 |
520|3301200 | Failed to obtain the geographical location.                                       |
521
522**示例**
523
524  ```ts
525  import geoLocationManager from '@ohos.geoLocationManager';
526  import BusinessError from "@ohos.base";
527  let cachedLocationsCb = (locations:Array<geoLocationManager.Location>):void => {
528      console.log('cachedGnssLocationsChange: locations: ' + JSON.stringify(locations));
529  }
530  let requestInfo:geoLocationManager.CachedGnssLocationsRequest = {'reportingPeriodSec': 10, 'wakeUpCacheQueueFull': true};
531  try {
532      geoLocationManager.on('cachedGnssLocationsChange', requestInfo, cachedLocationsCb);
533      geoLocationManager.off('cachedGnssLocationsChange');
534  } catch (err) {
535      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
536  }
537  ```
538
539
540## geoLocationManager.on('satelliteStatusChange')
541
542on(type: 'satelliteStatusChange', callback: Callback&lt;SatelliteStatusInfo&gt;): void;
543
544订阅GNSS卫星状态信息上报事件。
545
546**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
547
548**系统能力**:SystemCapability.Location.Location.Gnss
549
550**参数**:
551
552  | 参数名 | 类型 | 必填 | 说明 |
553  | -------- | -------- | -------- | -------- |
554  | type | string | 是 | 设置事件类型。type为“satelliteStatusChange”,表示订阅GNSS卫星状态信息上报。 |
555  | callback | Callback&lt;[SatelliteStatusInfo](#satellitestatusinfo)&gt; | 是 | 接收GNSS卫星状态信息上报。 |
556
557**错误码**:
558
559以下错误码的详细介绍请参见[位置服务子系统错误码](errorcode-geoLocationManager.md)。
560
561| 错误码ID | 错误信息 |
562| -------- | ---------------------------------------- |
563|3301000 | Location service is unavailable.                                            |
564|3301100 | The location switch is off.                                                 |
565
566**示例**
567
568  ```ts
569  import geoLocationManager from '@ohos.geoLocationManager';
570  import BusinessError from "@ohos.base";
571  let gnssStatusCb = (satelliteStatusInfo:geoLocationManager.SatelliteStatusInfo):void => {
572      console.log('satelliteStatusChange: ' + JSON.stringify(satelliteStatusInfo));
573  }
574
575  try {
576      geoLocationManager.on('satelliteStatusChange', gnssStatusCb);
577  } catch (err) {
578      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
579  }
580  ```
581
582
583## geoLocationManager.off('satelliteStatusChange')
584
585off(type: 'satelliteStatusChange', callback?: Callback&lt;SatelliteStatusInfo&gt;): void;
586
587取消订阅GNSS卫星状态信息上报事件。
588
589**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
590
591**系统能力**:SystemCapability.Location.Location.Gnss
592
593**参数**:
594
595  | 参数名 | 类型 | 必填 | 说明 |
596  | -------- | -------- | -------- | -------- |
597  | type | string | 是 | 设置事件类型。type为“satelliteStatusChange”,表示订阅GNSS卫星状态信息上报。 |
598  | callback | Callback&lt;[SatelliteStatusInfo](#satellitestatusinfo)&gt; | 否 | 需要取消订阅的回调函数。若无此参数,则取消当前类型的所有订阅。 |
599
600**错误码**:
601
602以下错误码的详细介绍请参见[位置服务子系统错误码](errorcode-geoLocationManager.md)。
603
604| 错误码ID | 错误信息 |
605| -------- | ---------------------------------------- |
606|3301000 | Location service is unavailable.                                            |
607|3301100 | The location switch is off.                                                 |
608
609
610**示例**
611
612  ```ts
613  import geoLocationManager from '@ohos.geoLocationManager';
614  import BusinessError from "@ohos.base";
615  let gnssStatusCb = (satelliteStatusInfo:geoLocationManager.SatelliteStatusInfo):void => {
616      console.log('satelliteStatusChange: ' + JSON.stringify(satelliteStatusInfo));
617  }
618  try {
619      geoLocationManager.on('satelliteStatusChange', gnssStatusCb);
620      geoLocationManager.off('satelliteStatusChange', gnssStatusCb);
621  } catch (err) {
622      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
623  }
624  ```
625
626
627## geoLocationManager.on('nmeaMessage')
628
629on(type: 'nmeaMessage', callback: Callback&lt;string&gt;): void;
630
631订阅GNSS NMEA信息上报事件。
632
633**需要权限**:ohos.permission.LOCATIONohos.permission.APPROXIMATELY_LOCATION
634
635**系统能力**:SystemCapability.Location.Location.Gnss
636
637**参数**:
638
639  | 参数名 | 类型 | 必填 | 说明 |
640  | -------- | -------- | -------- | -------- |
641  | type | string | 是 | 设置事件类型。type为“nmeaMessage”,表示订阅GNSS&nbsp;NMEA信息上报。 |
642  | callback | Callback&lt;string&gt; | 是 | 接收GNSS&nbsp;NMEA信息上报。 |
643
644**错误码**:
645
646以下错误码的详细介绍请参见[位置服务子系统错误码](errorcode-geoLocationManager.md)。
647
648| 错误码ID | 错误信息 |
649| -------- | ---------------------------------------- |
650|3301000 | Location service is unavailable.                                            |
651|3301100 | The location switch is off.                                                 |
652
653
654**示例**
655
656  ```ts
657  import geoLocationManager from '@ohos.geoLocationManager';
658  import BusinessError from "@ohos.base";
659  let nmeaCb = (str:string):void => {
660      console.log('nmeaMessage: ' + JSON.stringify(str));
661  }
662
663  try {
664      geoLocationManager.on('nmeaMessage', nmeaCb );
665  } catch (err) {
666      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
667  }
668  ```
669
670
671## geoLocationManager.off('nmeaMessage')
672
673off(type: 'nmeaMessage', callback?: Callback&lt;string&gt;): void;
674
675取消订阅GNSS NMEA信息上报事件。
676
677**需要权限**:ohos.permission.LOCATIONohos.permission.APPROXIMATELY_LOCATION
678
679**系统能力**:SystemCapability.Location.Location.Gnss
680
681**参数**:
682
683  | 参数名 | 类型 | 必填 | 说明 |
684  | -------- | -------- | -------- | -------- |
685  | type | string | 是 | 设置事件类型。type为“nmeaMessage”,表示订阅GNSS&nbsp;NMEA信息上报。 |
686  | callback | Callback&lt;string&gt; | 否 | 需要取消订阅的回调函数。若无此参数,则取消当前类型的所有订阅。 |
687
688**错误码**:
689
690以下错误码的详细介绍请参见[位置服务子系统错误码](errorcode-geoLocationManager.md)。
691
692| 错误码ID | 错误信息 |
693| -------- | ---------------------------------------- |
694|3301000 | Location service is unavailable.                                            |
695|3301100 | The location switch is off.                                                 |
696
697
698**示例**
699
700  ```ts
701  import geoLocationManager from '@ohos.geoLocationManager';
702  import BusinessError from "@ohos.base";
703  let nmeaCb = (str:string):void => {
704      console.log('nmeaMessage: ' + JSON.stringify(str));
705  }
706
707  try {
708      geoLocationManager.on('nmeaMessage', nmeaCb);
709      geoLocationManager.off('nmeaMessage', nmeaCb);
710  } catch (err) {
711      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
712  }
713  ```
714
715
716## geoLocationManager.on('gnssFenceStatusChange')
717
718on(type: 'gnssFenceStatusChange', request: GeofenceRequest, want: WantAgent): void;
719
720添加一个围栏,并订阅地理围栏事件。该接口功能由gnss定位芯片提供(仅部分型号支持),如果设备无此芯片或使用的芯片型号不支持该功能,则返回错误码801(Capability not supported)。
721
722**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
723
724**系统能力**:SystemCapability.Location.Location.Geofence
725
726**参数**:
727
728  | 参数名 | 类型 | 必填 | 说明 |
729  | -------- | -------- | -------- | -------- |
730  | type | string | 是 | 设置事件类型。type为“gnssFenceStatusChange”,表示订阅围栏事件上报。 |
731  | request |  [GeofenceRequest](#geofencerequest) | 是 | 围栏的配置参数。 |
732  | want | [WantAgent](../apis-ability-kit/js-apis-app-ability-wantAgent.md) | 是 | 用于接收地理围栏事件上报(进出围栏)。 |
733
734**错误码**:
735
736以下错误码的详细介绍请参见[位置服务子系统错误码](errorcode-geoLocationManager.md)。
737
738| 错误码ID | 错误信息 |
739| -------- | ---------------------------------------- |
740|3301000 | Location service is unavailable.                                            |
741|3301100 | The location switch is off.                                                 |
742|3301600 | Failed to operate the geofence.                                     |
743
744**示例**
745
746  ```ts
747  import geoLocationManager from '@ohos.geoLocationManager';
748  import wantAgent from '@ohos.app.ability.wantAgent';
749  import BusinessError from "@ohos.base";
750
751  let wantAgentInfo:wantAgent.WantAgentInfo = {
752      wants: [
753          {
754              bundleName: "com.example.myapplication",
755              abilityName: "EntryAbility",
756              action: "action1"
757          }
758      ],
759      operationType: wantAgent.OperationType.START_ABILITY,
760      requestCode: 0,
761      wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
762  };
763
764  wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => {
765    let requestInfo:geoLocationManager.GeofenceRequest = {'scenario': 0x301, "geofence": {"latitude": 31.12, "longitude": 121.11, "radius": 100, "expiration": 10000}};
766    try {
767        geoLocationManager.on('gnssFenceStatusChange', requestInfo, wantAgentObj);
768    } catch (err) {
769        console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
770    }
771  });
772  ```
773
774
775## geoLocationManager.off('gnssFenceStatusChange')
776
777off(type: 'gnssFenceStatusChange', request: GeofenceRequest, want: WantAgent): void;
778
779删除一个围栏,并取消订阅该围栏事件。该接口功能由gnss定位芯片提供(仅部分型号支持),如果设备无此芯片或使用的芯片型号不支持该功能,则返回错误码801(Capability not supported)。
780
781**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
782
783**系统能力**:SystemCapability.Location.Location.Geofence
784
785**参数**:
786
787  | 参数名 | 类型 | 必填 | 说明 |
788  | -------- | -------- | -------- | -------- |
789  | type | string | 是 | 设置事件类型。type为“gnssFenceStatusChange”,表示订阅围栏事件上报。 |
790  | request | [GeofenceRequest](#geofencerequest) | 是 | 围栏的配置参数。 |
791  | want | [WantAgent](../apis-ability-kit/js-apis-app-ability-wantAgent.md) | 是 | 用于接收地理围栏事件上报(进出围栏)。 |
792
793**错误码**:
794
795以下错误码的详细介绍请参见[位置服务子系统错误码](errorcode-geoLocationManager.md)。
796
797| 错误码ID | 错误信息 |
798| -------- | ---------------------------------------- |
799|3301000 | Location service is unavailable.                                            |
800|3301100 | The location switch is off.                                                 |
801|3301600 | Failed to operate the geofence.                                     |
802
803**示例**
804
805  ```ts
806  import geoLocationManager from '@ohos.geoLocationManager';
807  import wantAgent from '@ohos.app.ability.wantAgent';
808  import BusinessError from "@ohos.base";
809
810  let wantAgentInfo:wantAgent.WantAgentInfo = {
811      wants: [
812          {
813              bundleName: "com.example.myapplication",
814              abilityName: "EntryAbility",
815              action: "action1",
816          }
817      ],
818      operationType: wantAgent.OperationType.START_ABILITY,
819      requestCode: 0,
820      wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
821  };
822
823  wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => {
824    let requestInfo:geoLocationManager.GeofenceRequest = {'scenario': 0x301, "geofence": {"latitude": 31.12, "longitude": 121.11, "radius": 100, "expiration": 10000}};;
825    try {
826        geoLocationManager.on('gnssFenceStatusChange', requestInfo, wantAgentObj);
827        geoLocationManager.off('gnssFenceStatusChange', requestInfo, wantAgentObj);
828    } catch (err) {
829        console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
830    }
831  });
832  ```
833
834
835## geoLocationManager.on('countryCodeChange')
836
837on(type: 'countryCodeChange', callback: Callback&lt;CountryCode&gt;): void;
838
839订阅国家码信息变化事件。
840
841**系统能力**:SystemCapability.Location.Location.Core
842
843**参数**:
844
845  | 参数名 | 类型 | 必填 | 说明 |
846  | -------- | -------- | -------- | -------- |
847  | type | string | 是 | 设置事件类型。type为“countryCodeChange”,表示订阅国家码信息变化事件。 |
848  | callback | Callback&lt;[CountryCode](#countrycode)&gt; | 是 | 接收国家码信息上报。 |
849
850**错误码**:
851
852以下错误码的详细介绍请参见[位置服务子系统错误码](errorcode-geoLocationManager.md)。
853
854| 错误码ID | 错误信息 |
855| -------- | ---------------------------------------- |
856|3301000 | Location service is unavailable.                                            |
857|3301500 | Failed to query the area information.                                       |
858
859
860**示例**
861
862  ```ts
863  import geoLocationManager from '@ohos.geoLocationManager';
864  import BusinessError from "@ohos.base";
865  let callback = (code:geoLocationManager.CountryCode):void => {
866      console.log('countryCodeChange: ' + JSON.stringify(code));
867  }
868
869  try {
870      geoLocationManager.on('countryCodeChange', callback);
871  } catch (err) {
872      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
873  }
874  ```
875
876
877## geoLocationManager.off('countryCodeChange')
878
879off(type: 'countryCodeChange', callback?: Callback&lt;CountryCode&gt;): void;
880
881取消订阅国家码变化事件。
882
883**系统能力**:SystemCapability.Location.Location.Core
884
885**参数**:
886
887  | 参数名 | 类型 | 必填 | 说明 |
888  | -------- | -------- | -------- | -------- |
889  | type | string | 是 | 设置事件类型。type为“countryCodeChange”,表示取消订阅国家码信息变化事件。 |
890  | callback | Callback&lt;[CountryCode](#countrycode)&gt; | 否 | 需要取消订阅的回调函数。若无此参数,则取消当前类型的所有订阅。 |
891
892**错误码**:
893
894以下错误码的详细介绍请参见[位置服务子系统错误码](errorcode-geoLocationManager.md)。
895
896| 错误码ID | 错误信息 |
897| -------- | ---------------------------------------- |
898|3301000 | Location service is unavailable.                                            |
899|3301500 | Failed to query the area information.                                       |
900
901**示例**
902
903  ```ts
904  import geoLocationManager from '@ohos.geoLocationManager';
905  import BusinessError from "@ohos.base";
906  let callback = (code:geoLocationManager.CountryCode):void => {
907      console.log('countryCodeChange: ' + JSON.stringify(code));
908  }
909
910  try {
911      geoLocationManager.on('countryCodeChange', callback);
912      geoLocationManager.off('countryCodeChange', callback);
913  } catch (err) {
914      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
915  }
916  ```
917
918
919## geoLocationManager.getCurrentLocation
920
921getCurrentLocation(request: CurrentLocationRequest, callback: AsyncCallback&lt;Location&gt;): void
922
923获取当前位置,使用callback回调异步返回结果。
924
925**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
926
927**系统能力**:SystemCapability.Location.Location.Core
928
929**参数**:
930
931  | 参数名 | 类型 | 必填 | 说明 |
932  | -------- | -------- | -------- | -------- |
933  | request | [CurrentLocationRequest](#currentlocationrequest) | 是 | 设置位置请求参数。 |
934  | callback | AsyncCallback&lt;[Location](#location)&gt; | 是 | 用来接收位置信息的回调。 |
935
936**错误码**:
937
938以下错误码的详细介绍请参见[位置服务子系统错误码](errorcode-geoLocationManager.md)。
939
940| 错误码ID | 错误信息 |
941| -------- | ---------------------------------------- |
942|3301000 | Location service is unavailable.                                            |
943|3301100 | The location switch is off.                                                 |
944|3301200 | Failed to obtain the geographical location.  |
945
946**示例**
947
948  ```ts
949  import geoLocationManager from '@ohos.geoLocationManager';
950  import BusinessError from "@ohos.base";
951  let requestInfo:geoLocationManager.CurrentLocationRequest = {'priority': geoLocationManager.LocationRequestPriority.FIRST_FIX, 'scenario': geoLocationManager.LocationRequestScenario.UNSET,'maxAccuracy': 0};
952  let locationChange = (err:BusinessError.BusinessError, location:geoLocationManager.Location):void => {
953      if (err) {
954          console.error('locationChanger: err=' + JSON.stringify(err));
955      }
956      if (location) {
957          console.log('locationChanger: location=' + JSON.stringify(location));
958      }
959  };
960
961  try {
962      geoLocationManager.getCurrentLocation(requestInfo, locationChange);
963  } catch (err) {
964      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
965  }
966  ```
967
968## geoLocationManager.getCurrentLocation
969
970getCurrentLocation(callback: AsyncCallback&lt;Location&gt;): void;
971
972获取当前位置,通过callback方式异步返回结果。
973
974**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
975
976**系统能力**:SystemCapability.Location.Location.Core
977
978**参数**:
979
980  | 参数名 | 类型 | 必填 | 说明 |
981  | -------- | -------- | -------- | -------- |
982  | callback | AsyncCallback&lt;[Location](#location)&gt; | 是 | 用来接收位置信息的回调。 |
983
984**错误码**:
985
986以下错误码的详细介绍请参见[位置服务子系统错误码](errorcode-geoLocationManager.md)。
987
988| 错误码ID | 错误信息 |
989| -------- | ---------------------------------------- |
990|3301000 | Location service is unavailable.                                            |
991|3301100 | The location switch is off.                                                 |
992|3301200 | Failed to obtain the geographical location.  |
993
994**示例**
995
996  ```ts
997  import geoLocationManager from '@ohos.geoLocationManager';
998  import BusinessError from "@ohos.base";
999  let locationChange = (err:BusinessError.BusinessError, location:geoLocationManager.Location) => {
1000      if (err) {
1001          console.error('locationChanger: err=' + JSON.stringify(err));
1002      }
1003      if (location) {
1004          console.log('locationChanger: location=' + JSON.stringify(location));
1005      }
1006  };
1007
1008  try {
1009      geoLocationManager.getCurrentLocation(locationChange);
1010  } catch (err) {
1011      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1012  }
1013  ```
1014
1015## geoLocationManager.getCurrentLocation
1016
1017getCurrentLocation(request?: CurrentLocationRequest): Promise&lt;Location&gt;
1018
1019获取当前位置,使用Promise方式异步返回结果。
1020
1021**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
1022
1023**系统能力**:SystemCapability.Location.Location.Core
1024
1025**参数**:
1026
1027  | 参数名 | 类型 | 必填 | 说明 |
1028  | -------- | -------- | -------- | -------- |
1029  | request | [CurrentLocationRequest](#currentlocationrequest) | 否 | 设置位置请求参数。 |
1030
1031**返回值**:
1032
1033  | 类型 | 说明 |
1034  | -------- | -------- |
1035  | Promise&lt;[Location](#location)&gt; | 以Promise形式返回位置信息。 |
1036
1037**错误码**:
1038
1039以下错误码的详细介绍请参见[位置服务子系统错误码](errorcode-geoLocationManager.md)。
1040
1041| 错误码ID | 错误信息 |
1042| -------- | ---------------------------------------- |
1043|3301000 | Location service is unavailable.                                            |
1044|3301100 | The location switch is off.                                                 |
1045|3301200 | Failed to obtain the geographical location.  |
1046
1047**示例**
1048
1049  ```ts
1050  import geoLocationManager from '@ohos.geoLocationManager';
1051  import BusinessError from "@ohos.base";
1052  let requestInfo:geoLocationManager.CurrentLocationRequest = {'priority': geoLocationManager.LocationRequestPriority.FIRST_FIX, 'scenario': geoLocationManager.LocationRequestScenario.UNSET,'maxAccuracy': 0};
1053  try {
1054      geoLocationManager.getCurrentLocation(requestInfo).then((result) => {
1055          console.log('current location: ' + JSON.stringify(result));
1056      })
1057      .catch((error:number) => {
1058          console.error('promise, getCurrentLocation: error=' + JSON.stringify(error));
1059      });
1060  } catch (err) {
1061      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1062  }
1063  ```
1064
1065
1066## geoLocationManager.getLastLocation
1067
1068getLastLocation(): Location
1069
1070获取上一次位置。
1071
1072**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
1073
1074**系统能力**:SystemCapability.Location.Location.Core
1075
1076**返回值**:
1077
1078  | 类型 | 说明 |
1079  | -------- | -------- |
1080  | [Location](#location) | 位置信息。 |
1081
1082**错误码**:
1083
1084以下错误码的详细介绍请参见[位置服务子系统错误码](errorcode-geoLocationManager.md)。
1085
1086| 错误码ID | 错误信息 |
1087| -------- | ---------------------------------------- |
1088|3301000 | Location service is unavailable.  |
1089|3301100 | The location switch is off.  |
1090|3301200 |Failed to obtain the geographical location.  |
1091
1092**示例**
1093
1094  ```ts
1095  import geoLocationManager from '@ohos.geoLocationManager';
1096  import BusinessError from "@ohos.base";
1097  try {
1098      let location = geoLocationManager.getLastLocation();
1099  } catch (err) {
1100      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1101  }
1102  ```
1103
1104
1105## geoLocationManager.isLocationEnabled
1106
1107isLocationEnabled(): boolean
1108
1109判断位置服务是否已经使能。
1110
1111**系统能力**:SystemCapability.Location.Location.Core
1112
1113**返回值**:
1114
1115  | 类型 | 说明 |
1116  | -------- | -------- |
1117  | boolean | 位置服务是否已经使能。 |
1118
1119**错误码**:
1120
1121以下错误码的详细介绍请参见[位置服务子系统错误码](errorcode-geoLocationManager.md)。
1122
1123| 错误码ID | 错误信息 |
1124| -------- | ---------------------------------------- |
1125|3301000 | Location service is unavailable.  |
1126
1127**示例**
1128
1129  ```ts
1130  import geoLocationManager from '@ohos.geoLocationManager';
1131  import BusinessError from "@ohos.base";
1132  try {
1133      let locationEnabled = geoLocationManager.isLocationEnabled();
1134  } catch (err) {
1135      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1136  }
1137  ```
1138
1139
1140## geoLocationManager.getAddressesFromLocation
1141
1142getAddressesFromLocation(request: ReverseGeoCodeRequest, callback: AsyncCallback&lt;Array&lt;GeoAddress&gt;&gt;): void
1143
1144调用逆地理编码服务,将坐标转换为地理描述,使用callback回调异步返回结果。
1145
1146**系统能力**:SystemCapability.Location.Location.Geocoder
1147
1148**参数**:
1149
1150  | 参数名 | 类型 | 必填 | 说明 |
1151  | -------- | -------- | -------- | -------- |
1152  | request | [ReverseGeoCodeRequest](#reversegeocoderequest) | 是 | 设置逆地理编码请求的相关参数。 |
1153  | callback | AsyncCallback&lt;Array&lt;[GeoAddress](#geoaddress)&gt;&gt; | 是 | 接收逆地理编码结果的回调函数。 |
1154
1155**错误码**:
1156
1157以下错误码的详细介绍请参见[位置服务子系统错误码](errorcode-geoLocationManager.md)。
1158
1159| 错误码ID | 错误信息 |
1160| -------- | ---------------------------------------- |
1161|3301000 | Location service is unavailable.   |
1162|3301300 | Reverse geocoding query failed.   |
1163
1164**示例**
1165
1166  ```ts
1167  import geoLocationManager from '@ohos.geoLocationManager';
1168  import BusinessError from "@ohos.base";
1169  let reverseGeocodeRequest:geoLocationManager.ReverseGeoCodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1};
1170  try {
1171      geoLocationManager.getAddressesFromLocation(reverseGeocodeRequest, (err, data) => {
1172          if (err) {
1173              console.error('getAddressesFromLocation: err=' + JSON.stringify(err));
1174          }
1175          if (data) {
1176              console.log('getAddressesFromLocation: data=' + JSON.stringify(data));
1177          }
1178      });
1179  } catch (err) {
1180      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1181  }
1182  ```
1183
1184
1185## geoLocationManager.getAddressesFromLocation
1186
1187getAddressesFromLocation(request: ReverseGeoCodeRequest): Promise&lt;Array&lt;GeoAddress&gt;&gt;;
1188
1189调用逆地理编码服务,将坐标转换为地理描述,使用Promise方式异步返回结果。
1190
1191**系统能力**:SystemCapability.Location.Location.Geocoder
1192
1193**参数**:
1194
1195  | 参数名 | 类型 | 必填 | 说明 |
1196  | -------- | -------- | -------- | -------- |
1197  | request | [ReverseGeoCodeRequest](#reversegeocoderequest) | 是 | 设置逆地理编码请求的相关参数。 |
1198
1199**返回值**:
1200
1201  | 类型 | 说明 |
1202  | -------- | -------- |
1203  | Promise&lt;Array&lt;[GeoAddress](#geoaddress)&gt;&gt; | 以Promise形式返回地理描述信息。 |
1204
1205**错误码**:
1206
1207以下错误码的详细介绍请参见[位置服务子系统错误码](errorcode-geoLocationManager.md)。
1208
1209| 错误码ID | 错误信息 |
1210| -------- | ---------------------------------------- |
1211|3301000 | Location service is unavailable.   |
1212|3301300 | Reverse geocoding query failed.   |
1213
1214**示例**
1215
1216  ```ts
1217  import geoLocationManager from '@ohos.geoLocationManager';
1218  import BusinessError from "@ohos.base";
1219  let reverseGeocodeRequest:geoLocationManager.ReverseGeoCodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1};
1220  try {
1221      geoLocationManager.getAddressesFromLocation(reverseGeocodeRequest).then((data) => {
1222          console.log('getAddressesFromLocation: ' + JSON.stringify(data));
1223      })
1224      .catch((error:number) => {
1225          console.error('promise, getAddressesFromLocation: error=' + JSON.stringify(error));
1226      });
1227  } catch (err) {
1228      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1229  }
1230  ```
1231
1232
1233## geoLocationManager.getAddressesFromLocationName
1234
1235getAddressesFromLocationName(request: GeoCodeRequest, callback: AsyncCallback&lt;Array&lt;GeoAddress&gt;&gt;): void
1236
1237调用地理编码服务,将地理描述转换为具体坐标,使用callback回调异步返回结果。
1238
1239**系统能力**:SystemCapability.Location.Location.Geocoder
1240
1241**参数**:
1242
1243  | 参数名 | 类型 | 必填 | 说明 |
1244  | -------- | -------- | -------- | -------- |
1245  | request | [GeoCodeRequest](#geocoderequest) | 是 | 设置地理编码请求的相关参数。 |
1246  | callback | AsyncCallback&lt;Array&lt;[GeoAddress](#geoaddress)&gt;&gt; | 是 | 接收地理编码结果的回调函数。 |
1247
1248**错误码**:
1249
1250以下错误码的详细介绍请参见[位置服务子系统错误码](errorcode-geoLocationManager.md)。
1251
1252| 错误码ID | 错误信息 |
1253| -------- | ---------------------------------------- |
1254|3301000 | Location service is unavailable.   |
1255|3301400 | Geocoding query failed.   |
1256
1257**示例**
1258
1259  ```ts
1260  import geoLocationManager from '@ohos.geoLocationManager';
1261  import BusinessError from "@ohos.base";
1262  let geocodeRequest:geoLocationManager.GeoCodeRequest = {"description": "上海市浦东新区xx路xx号", "maxItems": 1};
1263  try {
1264      geoLocationManager.getAddressesFromLocationName(geocodeRequest, (err, data) => {
1265          if (err) {
1266              console.error('getAddressesFromLocationName: err=' + JSON.stringify(err));
1267          }
1268          if (data) {
1269              console.log('getAddressesFromLocationName: data=' + JSON.stringify(data));
1270          }
1271      });
1272  } catch (err) {
1273      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1274  }
1275  ```
1276
1277
1278## geoLocationManager.getAddressesFromLocationName
1279
1280getAddressesFromLocationName(request: GeoCodeRequest): Promise&lt;Array&lt;GeoAddress&gt;&gt;
1281
1282调用地理编码服务,将地理描述转换为具体坐标,使用Promise方式异步返回结果。
1283
1284**系统能力**:SystemCapability.Location.Location.Geocoder
1285
1286**参数**:
1287
1288  | 参数名 | 类型 | 必填 | 说明 |
1289  | -------- | -------- | -------- | -------- |
1290  | request | [GeoCodeRequest](#geocoderequest) | 是 | 设置地理编码请求的相关参数。 |
1291
1292**返回值**:
1293
1294  | 类型 | 说明 |
1295  | -------- | -------- |
1296  | Promise&lt;Array&lt;[GeoAddress](#geoaddress)&gt;&gt; | 以Promise形式返回地理编码查询结果。 |
1297
1298**错误码**:
1299
1300以下错误码的详细介绍请参见[位置服务子系统错误码](errorcode-geoLocationManager.md)。
1301
1302| 错误码ID | 错误信息 |
1303| -------- | ---------------------------------------- |
1304|3301000 | Location service is unavailable.   |
1305|3301400 | Geocoding query failed.   |
1306
1307**示例**
1308
1309  ```ts
1310  import geoLocationManager from '@ohos.geoLocationManager';
1311  import BusinessError from "@ohos.base";
1312  let geocodeRequest:geoLocationManager.GeoCodeRequest = {"description": "上海市浦东新区xx路xx号", "maxItems": 1};
1313  try {
1314      geoLocationManager.getAddressesFromLocationName(geocodeRequest).then((result) => {
1315          console.log('getAddressesFromLocationName: ' + JSON.stringify(result));
1316      })
1317      .catch((error:number) => {
1318          console.error('promise, getAddressesFromLocationName: error=' + JSON.stringify(error));
1319      });
1320  } catch (err) {
1321      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1322  }
1323  ```
1324
1325## geoLocationManager.isGeocoderAvailable
1326
1327isGeocoderAvailable(): boolean;
1328
1329判断(逆)地理编码服务状态。
1330
1331**系统能力**:SystemCapability.Location.Location.Geocoder
1332
1333**返回值**:
1334
1335  | 类型 | 说明 |
1336  | -------- | -------- |
1337  | boolean | 返回(逆)地理编码服务是否可用。 |
1338
1339**错误码**:
1340
1341以下错误码的详细介绍请参见[位置服务子系统错误码](errorcode-geoLocationManager.md)。
1342
1343| 错误码ID | 错误信息 |
1344| -------- | ---------------------------------------- |
1345|3301000 | Location service is unavailable.   |
1346
1347**示例**
1348
1349  ```ts
1350  import geoLocationManager from '@ohos.geoLocationManager';
1351  import BusinessError from "@ohos.base";
1352  try {
1353      let isAvailable = geoLocationManager.isGeocoderAvailable();
1354  } catch (err) {
1355      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1356  }
1357  ```
1358
1359
1360## geoLocationManager.getCachedGnssLocationsSize
1361
1362getCachedGnssLocationsSize(callback: AsyncCallback&lt;number&gt;): void;
1363
1364获取GNSS芯片缓存位置的个数。该接口功能由gnss定位芯片提供(仅部分型号支持),如果设备无此芯片或使用的芯片型号不支持该功能,则返回错误码801(Capability not supported)。
1365
1366**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
1367
1368**系统能力**:SystemCapability.Location.Location.Gnss
1369
1370**参数**:
1371
1372  | 参数名 | 类型 | 必填 | 说明 |
1373  | -------- | -------- | -------- | -------- |
1374  | callback | AsyncCallback&lt;number&gt; | 是 | 用来接收GNSS芯片缓存位置个数的回调。 |
1375
1376**错误码**:
1377
1378以下错误码的详细介绍请参见[位置服务子系统错误码](errorcode-geoLocationManager.md)。
1379
1380| 错误码ID | 错误信息 |
1381| -------- | ---------------------------------------- |
1382|3301000 | Location service is unavailable.   |
1383|3301100 | The location switch is off.   |
1384
1385**示例**
1386
1387  ```ts
1388  import geoLocationManager from '@ohos.geoLocationManager';
1389  import BusinessError from "@ohos.base";
1390  try {
1391      geoLocationManager.getCachedGnssLocationsSize((err, size) => {
1392          if (err) {
1393              console.error('getCachedGnssLocationsSize: err=' + JSON.stringify(err));
1394          }
1395          if (size) {
1396              console.log('getCachedGnssLocationsSize: size=' + JSON.stringify(size));
1397          }
1398      });
1399  } catch (err) {
1400      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1401  }
1402  ```
1403
1404
1405## geoLocationManager.getCachedGnssLocationsSize
1406
1407getCachedGnssLocationsSize(): Promise&lt;number&gt;;
1408
1409获取GNSS芯片缓存位置的个数。该接口功能由gnss定位芯片提供(仅部分型号支持),如果设备无此芯片或使用的芯片型号不支持该功能,则返回错误码801(Capability not supported)。
1410
1411**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
1412
1413**系统能力**:SystemCapability.Location.Location.Gnss
1414
1415**返回值**:
1416
1417  | 类型 | 说明 |
1418  | -------- | -------- |
1419  | Promise&lt;number&gt; | 以Promise形式返回GNSS缓存位置的个数。 |
1420
1421**错误码**:
1422
1423以下错误码的详细介绍请参见[位置服务子系统错误码](errorcode-geoLocationManager.md)。
1424
1425| 错误码ID | 错误信息 |
1426| -------- | ---------------------------------------- |
1427|3301000 | Location service is unavailable.   |
1428|3301100 | The location switch is off.   |
1429
1430**示例**
1431
1432  ```ts
1433  import geoLocationManager from '@ohos.geoLocationManager';
1434  import BusinessError from "@ohos.base";
1435  try {
1436      geoLocationManager.getCachedGnssLocationsSize().then((result) => {
1437          console.log('promise, getCachedGnssLocationsSize: ' + JSON.stringify(result));
1438      })
1439      .catch((error:number) => {
1440          console.error('promise, getCachedGnssLocationsSize: error=' + JSON.stringify(error));
1441      });
1442  } catch (err) {
1443      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1444  }
1445  ```
1446
1447
1448## geoLocationManager.flushCachedGnssLocations
1449
1450flushCachedGnssLocations(callback: AsyncCallback&lt;void&gt;): void;
1451
1452读取并清空GNSS芯片所有缓存位置。该接口功能由gnss定位芯片提供(仅部分型号支持),如果设备无此芯片或使用的芯片型号不支持该功能,则返回错误码801(Capability not supported)。
1453
1454**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
1455
1456**系统能力**:SystemCapability.Location.Location.Gnss
1457
1458**参数**:
1459
1460  | 参数名 | 类型 | 必填 | 说明 |
1461  | -------- | -------- | -------- | -------- |
1462  | callback | AsyncCallback&lt;void&gt; | 是 | 用来接收错误码信息。 |
1463
1464**错误码**:
1465
1466以下错误码的详细介绍请参见[位置服务子系统错误码](errorcode-geoLocationManager.md)。
1467
1468| 错误码ID | 错误信息 |
1469| -------- | ---------------------------------------- |
1470|3301000 | Location service is unavailable.   |
1471|3301100 | The location switch is off.   |
1472|3301200 | Failed to obtain the geographical location.   |
1473
1474**示例**
1475
1476  ```ts
1477  import geoLocationManager from '@ohos.geoLocationManager';
1478  import BusinessError from "@ohos.base";
1479  try {
1480      geoLocationManager.flushCachedGnssLocations((err) => {
1481          if (err) {
1482              console.error('flushCachedGnssLocations: err=' + JSON.stringify(err));
1483          }
1484      });
1485  } catch (err) {
1486      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1487  }
1488  ```
1489
1490
1491## geoLocationManager.flushCachedGnssLocations
1492
1493flushCachedGnssLocations(): Promise&lt;void&gt;;
1494
1495读取并清空GNSS芯片所有缓存位置。该接口功能由gnss定位芯片提供(仅部分型号支持),如果设备无此芯片或使用的芯片型号不支持该功能,则返回错误码801(Capability not supported)。
1496
1497**需要权限**:ohos.permission.APPROXIMATELY_LOCATION
1498
1499**系统能力**:SystemCapability.Location.Location.Gnss
1500
1501**返回值**:
1502
1503  | 类型 | 说明 |
1504  | -------- | -------- |
1505  | Promise&lt;void&gt; | 返回Promise对象。 |
1506
1507**错误码**:
1508
1509以下错误码的详细介绍请参见[位置服务子系统错误码](errorcode-geoLocationManager.md)。
1510
1511| 错误码ID | 错误信息 |
1512| -------- | ---------------------------------------- |
1513|3301000 | Location service is unavailable.   |
1514|3301100 | The location switch is off.   |
1515|3301200 | Failed to obtain the geographical location.   |
1516
1517**示例**
1518
1519  ```ts
1520  import geoLocationManager from '@ohos.geoLocationManager';
1521  import BusinessError from "@ohos.base";
1522  try {
1523      geoLocationManager.flushCachedGnssLocations().then(() => {
1524          console.log('promise, flushCachedGnssLocations success');
1525      })
1526      .catch((error:number) => {
1527          console.error('promise, flushCachedGnssLocations: error=' + JSON.stringify(error));
1528      });
1529  } catch (err) {
1530      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1531  }
1532  ```
1533
1534
1535## geoLocationManager.sendCommand
1536
1537sendCommand(command: LocationCommand, callback: AsyncCallback&lt;void&gt;): void;
1538
1539给位置服务子系统的各个部件发送扩展命令。
1540
1541**系统能力**:SystemCapability.Location.Location.Core
1542
1543**参数**:
1544
1545  | 参数名 | 类型 | 必填 | 说明 |
1546  | -------- | -------- | -------- | -------- |
1547  | command |  [LocationCommand](#locationcommand) | 是 | 指定目标场景,和将要发送的命令(字符串)。 |
1548  | callback | AsyncCallback&lt;void&gt; | 是 | 用来接收错误码。 |
1549
1550**错误码**:
1551
1552以下错误码的详细介绍请参见[位置服务子系统错误码](errorcode-geoLocationManager.md)。
1553
1554| 错误码ID | 错误信息 |
1555| -------- | ---------------------------------------- |
1556|3301000 | Location service is unavailable.   |
1557
1558**示例**
1559
1560  ```ts
1561  import geoLocationManager from '@ohos.geoLocationManager';
1562  import BusinessError from "@ohos.base";
1563  let requestInfo:geoLocationManager.LocationCommand = {'scenario': 0x301, 'command': "command_1"};
1564  try {
1565      geoLocationManager.sendCommand(requestInfo, (err) => {
1566          if (err) {
1567              console.error('sendCommand: err=' + JSON.stringify(err));
1568          }
1569      });
1570  } catch (err) {
1571      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1572  }
1573  ```
1574
1575
1576## geoLocationManager.sendCommand
1577
1578sendCommand(command: LocationCommand): Promise&lt;void&gt;;
1579
1580给位置服务子系统的各个部件发送扩展命令。
1581
1582**系统能力**:SystemCapability.Location.Location.Core
1583
1584**参数**:
1585
1586  | 参数名 | 类型 | 必填 | 说明 |
1587  | -------- | -------- | -------- | -------- |
1588  | command | [LocationCommand](#locationcommand) | 是 | 指定目标场景,和将要发送的命令(字符串)。 |
1589
1590**返回值**:
1591
1592  | 类型 | 说明 |
1593  | -------- | -------- |
1594  | Promise&lt;void&gt; | 返回Promise对象。 |
1595
1596**错误码**:
1597
1598以下错误码的详细介绍请参见[位置服务子系统错误码](errorcode-geoLocationManager.md)。
1599
1600| 错误码ID | 错误信息 |
1601| -------- | ---------------------------------------- |
1602|3301000 | Location service is unavailable.                                            |
1603
1604**示例**
1605
1606  ```ts
1607  import geoLocationManager from '@ohos.geoLocationManager';
1608  import BusinessError from "@ohos.base";
1609  let requestInfo:geoLocationManager.LocationCommand = {'scenario': 0x301, 'command': "command_1"};
1610  try {
1611      geoLocationManager.sendCommand(requestInfo).then(() => {
1612          console.log('promise, sendCommand success');
1613      })
1614      .catch((error:number) => {
1615          console.error('promise, sendCommand: error=' + JSON.stringify(error));
1616      });
1617  } catch (err) {
1618      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1619  }
1620  ```
1621
1622
1623## geoLocationManager.getCountryCode
1624
1625getCountryCode(callback: AsyncCallback&lt;CountryCode&gt;): void;
1626
1627查询当前的国家码。
1628
1629**系统能力**:SystemCapability.Location.Location.Core
1630
1631**参数**:
1632
1633  | 参数名 | 类型 | 必填 | 说明 |
1634  | -------- | -------- | -------- | -------- |
1635  | callback | AsyncCallback&lt;[CountryCode](#countrycode)&gt; | 是 | 用来接收国家码。 |
1636
1637**错误码**:
1638
1639以下错误码的详细介绍请参见[位置服务子系统错误码](errorcode-geoLocationManager.md)。
1640
1641| 错误码ID | 错误信息 |
1642| -------- | ---------------------------------------- |
1643|3301000 | Location service is unavailable.                                            |
1644|3301500 | Failed to query the area information.|
1645
1646**示例**
1647
1648  ```ts
1649  import geoLocationManager from '@ohos.geoLocationManager';
1650  import BusinessError from "@ohos.base";
1651  try {
1652      geoLocationManager.getCountryCode((err, result) => {
1653          if (err) {
1654              console.error('getCountryCode: err=' + JSON.stringify(err));
1655          }
1656          if (result) {
1657              console.log('getCountryCode: result=' + JSON.stringify(result));
1658          }
1659      });
1660  } catch (err) {
1661      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1662  }
1663  ```
1664
1665
1666## geoLocationManager.getCountryCode
1667
1668getCountryCode(): Promise&lt;CountryCode&gt;;
1669
1670查询当前的国家码。
1671
1672**系统能力**:SystemCapability.Location.Location.Core
1673
1674**返回值**:
1675
1676  | 类型 | 说明 |
1677  | -------- | -------- |
1678  | Promise&lt;[CountryCode](#countrycode)&gt; | 以Promise形式返回国家码。 |
1679
1680**错误码**:
1681
1682以下错误码的详细介绍请参见[位置服务子系统错误码](errorcode-geoLocationManager.md)。
1683
1684| 错误码ID | 错误信息 |
1685| -------- | ---------------------------------------- |
1686|3301000 | Location service is unavailable.                                            |
1687|3301500 | Failed to query the area information.|
1688
1689**示例**
1690
1691  ```ts
1692  import geoLocationManager from '@ohos.geoLocationManager';
1693  import BusinessError from "@ohos.base";
1694  try {
1695      geoLocationManager.getCountryCode()
1696      .then((result) => {
1697          console.log('promise, getCountryCode: result=' + JSON.stringify(result));
1698      })
1699      .catch((error:number) => {
1700          console.error('promise, getCountryCode: error=' + JSON.stringify(error));
1701      });
1702  } catch (err) {
1703      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
1704  }
1705  ```