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_LOCATION和ohos.permission.LOCATION;无法单独申请ohos.permission.LOCATION。 26 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_LOCATION和ohos.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<string> | 是 | 否 | 附加信息。 | 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<Location>): 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<[Location](#location)> | 是 | 接收位置变化状态变化监听。 | 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<Location>): 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<[Location](#location)> | 否 | 需要取消订阅的回调函数。若无此参数,则取消当前类型的所有订阅。 | 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<boolean>): void 374 375订阅位置服务状态变化。 376 377**系统能力**:SystemCapability.Location.Location.Core 378 379**参数:** 380 381 | 参数名 | 类型 | 必填 | 说明 | 382 | -------- | -------- | -------- | -------- | 383 | type | string | 是 | 设置事件类型。type为“locationEnabledChange”,表示位置服务状态。 | 384 | callback | Callback<boolean> | 是 | 接收位置服务状态变化监听。 | 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<boolean>): void; 413 414取消订阅位置服务状态变化。 415 416**系统能力**:SystemCapability.Location.Location.Core 417 418**参数**: 419 420 | 参数名 | 类型 | 必填 | 说明 | 421 | -------- | -------- | -------- | -------- | 422 | type | string | 是 | 设置事件类型。type为“locationEnabledChange”,表示位置服务状态。 | 423 | callback | Callback<boolean> | 否 | 需要取消订阅的回调函数。若无此参数,则取消当前类型的所有订阅。 | 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<Array<Location>>): 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<Array<[Location](#location)>> | 是 | 接收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<Array<Location>>): 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<Array<[Location](#location)>> | 否 | 需要取消订阅的回调函数。若无此参数,则取消当前类型的所有订阅。 | 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<SatelliteStatusInfo>): 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<[SatelliteStatusInfo](#satellitestatusinfo)> | 是 | 接收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<SatelliteStatusInfo>): 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<[SatelliteStatusInfo](#satellitestatusinfo)> | 否 | 需要取消订阅的回调函数。若无此参数,则取消当前类型的所有订阅。 | 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<string>): void; 630 631订阅GNSS NMEA信息上报事件。 632 633**需要权限**:ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION 634 635**系统能力**:SystemCapability.Location.Location.Gnss 636 637**参数**: 638 639 | 参数名 | 类型 | 必填 | 说明 | 640 | -------- | -------- | -------- | -------- | 641 | type | string | 是 | 设置事件类型。type为“nmeaMessage”,表示订阅GNSS NMEA信息上报。 | 642 | callback | Callback<string> | 是 | 接收GNSS 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<string>): void; 674 675取消订阅GNSS NMEA信息上报事件。 676 677**需要权限**:ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION 678 679**系统能力**:SystemCapability.Location.Location.Gnss 680 681**参数**: 682 683 | 参数名 | 类型 | 必填 | 说明 | 684 | -------- | -------- | -------- | -------- | 685 | type | string | 是 | 设置事件类型。type为“nmeaMessage”,表示订阅GNSS NMEA信息上报。 | 686 | callback | Callback<string> | 否 | 需要取消订阅的回调函数。若无此参数,则取消当前类型的所有订阅。 | 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<CountryCode>): void; 838 839订阅国家码信息变化事件。 840 841**系统能力**:SystemCapability.Location.Location.Core 842 843**参数**: 844 845 | 参数名 | 类型 | 必填 | 说明 | 846 | -------- | -------- | -------- | -------- | 847 | type | string | 是 | 设置事件类型。type为“countryCodeChange”,表示订阅国家码信息变化事件。 | 848 | callback | Callback<[CountryCode](#countrycode)> | 是 | 接收国家码信息上报。 | 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<CountryCode>): void; 880 881取消订阅国家码变化事件。 882 883**系统能力**:SystemCapability.Location.Location.Core 884 885**参数**: 886 887 | 参数名 | 类型 | 必填 | 说明 | 888 | -------- | -------- | -------- | -------- | 889 | type | string | 是 | 设置事件类型。type为“countryCodeChange”,表示取消订阅国家码信息变化事件。 | 890 | callback | Callback<[CountryCode](#countrycode)> | 否 | 需要取消订阅的回调函数。若无此参数,则取消当前类型的所有订阅。 | 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<Location>): 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<[Location](#location)> | 是 | 用来接收位置信息的回调。 | 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<Location>): void; 971 972获取当前位置,通过callback方式异步返回结果。 973 974**需要权限**:ohos.permission.APPROXIMATELY_LOCATION 975 976**系统能力**:SystemCapability.Location.Location.Core 977 978**参数**: 979 980 | 参数名 | 类型 | 必填 | 说明 | 981 | -------- | -------- | -------- | -------- | 982 | callback | AsyncCallback<[Location](#location)> | 是 | 用来接收位置信息的回调。 | 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<Location> 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<[Location](#location)> | 以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<Array<GeoAddress>>): void 1143 1144调用逆地理编码服务,将坐标转换为地理描述,使用callback回调异步返回结果。 1145 1146**系统能力**:SystemCapability.Location.Location.Geocoder 1147 1148**参数**: 1149 1150 | 参数名 | 类型 | 必填 | 说明 | 1151 | -------- | -------- | -------- | -------- | 1152 | request | [ReverseGeoCodeRequest](#reversegeocoderequest) | 是 | 设置逆地理编码请求的相关参数。 | 1153 | callback | AsyncCallback<Array<[GeoAddress](#geoaddress)>> | 是 | 接收逆地理编码结果的回调函数。 | 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<Array<GeoAddress>>; 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<Array<[GeoAddress](#geoaddress)>> | 以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<Array<GeoAddress>>): void 1236 1237调用地理编码服务,将地理描述转换为具体坐标,使用callback回调异步返回结果。 1238 1239**系统能力**:SystemCapability.Location.Location.Geocoder 1240 1241**参数**: 1242 1243 | 参数名 | 类型 | 必填 | 说明 | 1244 | -------- | -------- | -------- | -------- | 1245 | request | [GeoCodeRequest](#geocoderequest) | 是 | 设置地理编码请求的相关参数。 | 1246 | callback | AsyncCallback<Array<[GeoAddress](#geoaddress)>> | 是 | 接收地理编码结果的回调函数。 | 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<Array<GeoAddress>> 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<Array<[GeoAddress](#geoaddress)>> | 以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<number>): 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<number> | 是 | 用来接收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<number>; 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<number> | 以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<void>): 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<void> | 是 | 用来接收错误码信息。 | 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<void>; 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<void> | 返回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<void>): void; 1538 1539给位置服务子系统的各个部件发送扩展命令。 1540 1541**系统能力**:SystemCapability.Location.Location.Core 1542 1543**参数**: 1544 1545 | 参数名 | 类型 | 必填 | 说明 | 1546 | -------- | -------- | -------- | -------- | 1547 | command | [LocationCommand](#locationcommand) | 是 | 指定目标场景,和将要发送的命令(字符串)。 | 1548 | callback | AsyncCallback<void> | 是 | 用来接收错误码。 | 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<void>; 1579 1580给位置服务子系统的各个部件发送扩展命令。 1581 1582**系统能力**:SystemCapability.Location.Location.Core 1583 1584**参数**: 1585 1586 | 参数名 | 类型 | 必填 | 说明 | 1587 | -------- | -------- | -------- | -------- | 1588 | command | [LocationCommand](#locationcommand) | 是 | 指定目标场景,和将要发送的命令(字符串)。 | 1589 1590**返回值**: 1591 1592 | 类型 | 说明 | 1593 | -------- | -------- | 1594 | Promise<void> | 返回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<CountryCode>): void; 1626 1627查询当前的国家码。 1628 1629**系统能力**:SystemCapability.Location.Location.Core 1630 1631**参数**: 1632 1633 | 参数名 | 类型 | 必填 | 说明 | 1634 | -------- | -------- | -------- | -------- | 1635 | callback | AsyncCallback<[CountryCode](#countrycode)> | 是 | 用来接收国家码。 | 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<CountryCode>; 1669 1670查询当前的国家码。 1671 1672**系统能力**:SystemCapability.Location.Location.Core 1673 1674**返回值**: 1675 1676 | 类型 | 说明 | 1677 | -------- | -------- | 1678 | Promise<[CountryCode](#countrycode)> | 以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 ```