位置服務

2024-01-23 17:34 更新

位置服務提供GNSS定位、網(wǎng)絡定位、地理編碼、逆地理編碼、國家碼和地理圍欄等基本功能。

說明

本模塊首批接口從API version 9開始支持。后續(xù)版本的新增接口,采用上角標單獨標記接口的起始版本。

申請權限

應用在使用系統(tǒng)能力前,需要檢查是否已經(jīng)獲取用戶授權訪問設備位置信息。如未獲得授權,可以向用戶申請需要的位置權限,申請方式請參考下文。

系統(tǒng)提供的定位權限有:

  • ohos.permission.LOCATION

  • ohos.permission.APPROXIMATELY_LOCATION

  • ohos.permission.LOCATION_IN_BACKGROUND

訪問設備的位置信息,必須申請權限,并且獲得用戶授權。

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

API9及之后的版本,需要申請ohos.permission.APPROXIMATELY_LOCATION或者同時申請ohos.permission.APPROXIMATELY_LOCATION和ohos.permission.LOCATION;無法單獨申請ohos.permission.LOCATION。

使用的API版本

申請位置權限

申請結果

位置的精確度

小于9

ohos.permission.LOCATION

成功

獲取到精準位置,精準度在米級別。

大于等于9

ohos.permission.LOCATION

失敗

無法獲取位置。

大于等于9

ohos.permission.APPROXIMATELY_LOCATION

成功

獲取到模糊位置,精確度為5公里。

大于等于9

ohos.permission.APPROXIMATELY_LOCATION和ohos.permission.LOCATION

成功

獲取到精準位置,精準度在米級別。

如果應用在后臺運行時也需要訪問設備位置,除需要將應用聲明為允許后臺運行外,還必須申請ohos.permission.LOCATION_IN_BACKGROUND權限,這樣應用在切入后臺之后,系統(tǒng)可以繼續(xù)上報位置信息。

開發(fā)者可以在應用配置文件中聲明所需要的權限,具體可參考授權申請指導。

導入模塊

  1. import geoLocationManager from '@ohos.geoLocationManager';

ReverseGeoCodeRequest

逆地理編碼請求接口。

系統(tǒng)能力:SystemCapability.Location.Location.Geocoder

名稱

類型

可讀

可寫

說明

locale

string

指定位置描述信息的語言,“zh”代表中文,“en”代表英文。

latitude

number

表示緯度信息,正值表示北緯,負值表示南緯。取值范圍為-90到90。

longitude

number

表示經(jīng)度信息,正值表示東經(jīng),負值表示西經(jīng)。取值范圍為-180到180。

maxItems

number

指定返回位置信息的最大個數(shù)。取值范圍為大于等于0,推薦該值小于10。

GeoCodeRequest

地理編碼請求接口。

系統(tǒng)能力:SystemCapability.Location.Location.Geocoder

名稱

類型

可讀

可寫

說明

locale

string

表示位置描述信息的語言,“zh”代表中文,“en”代表英文。

description

string

表示位置信息描述,如“上海市浦東新區(qū)xx路xx號”。

maxItems

number

表示返回位置信息的最大個數(shù)。取值范圍為大于等于0,推薦該值小于10。

minLatitude

number

表示最小緯度信息,與下面三個參數(shù)一起,表示一個經(jīng)緯度范圍。取值范圍為-90到90。

minLongitude

number

表示最小經(jīng)度信息。取值范圍為-180到180。

maxLatitude

number

表示最大緯度信息。取值范圍為-90到90。

maxLongitude

number

表示最大經(jīng)度信息。取值范圍為-180到180。

GeoAddress

地理編碼類型。

系統(tǒng)能力:SystemCapability.Location.Location.Geocoder

名稱

類型

可讀

可寫

說明

latitude

number

表示緯度信息,正值表示北緯,負值表示南緯。取值范圍為-90到90。

longitude

number

表示經(jīng)度信息,正值表示東經(jīng),負值表是西經(jīng)。取值范圍為-180到180。

locale

string

表示位置描述信息的語言,“zh”代表中文,“en”代表英文。

placeName

string

表示地區(qū)信息。

countryCode

string

表示國家碼信息。

countryName

string

表示國家信息。

administrativeArea

string

表示省份區(qū)域信息。

subAdministrativeArea

string

表示子區(qū)域信息。

locality

string

表示城市信息。

subLocality

string

表示子城市信息。

roadName

string

表示路名信息。

subRoadName

string

表示子路名信息。

premises

string

表示門牌號信息。

postalCode

string

表示郵政編碼信息。

phoneNumber

string

表示聯(lián)系方式信息。

addressUrl

string

表示位置信息附件的網(wǎng)址信息。

descriptions

Array<string>

表示附加的描述信息。

descriptionsSize

number

表示附加的描述信息數(shù)量。取值范圍為大于等于0,推薦該值小于10。

LocationRequest

位置信息請求類型。

系統(tǒng)能力:SystemCapability.Location.Location.Core

名稱

類型

可讀

可寫

說明

priority

LocationRequestPriority

表示優(yōu)先級信息。取值范圍見LocationRequestPriority的定義。

scenario

LocationRequestScenario

表示場景信息。取值范圍見LocationRequestScenario的定義。

timeInterval

number

表示上報位置信息的時間間隔,單位是秒。取值范圍為大于0。

distanceInterval

number

表示上報位置信息的距離間隔。單位是米,取值范圍為大于0。

maxAccuracy

number

表示精度信息。僅在精確位置功能場景下有效,模糊位置功能生效場景下該字段無意義。取值范圍為大于0。

CurrentLocationRequest

當前位置信息請求類型。

系統(tǒng)能力:SystemCapability.Location.Location.Core

名稱

類型

可讀

可寫

說明

priority

LocationRequestPriority

表示優(yōu)先級信息。取值范圍見LocationRequestPriority的定義。

scenario

LocationRequestScenario

表示場景信息。取值范圍見LocationRequestScenario的定義。

maxAccuracy

number

表示精度信息,單位是米。僅在精確位置功能場景下有效,模糊位置功能生效場景下該字段無意義。取值范圍為大于0。

timeoutMs

number

表示超時時間,單位是毫秒,最小為1000毫秒。取值范圍為大于等于1000。

SatelliteStatusInfo

衛(wèi)星狀態(tài)信息。

系統(tǒng)能力:SystemCapability.Location.Location.Gnss

名稱

類型

可讀

可寫

說明

satellitesNumber

number

表示衛(wèi)星個數(shù)。取值范圍為大于等于0。

satelliteIds

Array<number>

表示每個衛(wèi)星的ID,數(shù)組類型。取值范圍為大于等于0。

carrierToNoiseDensitys

Array<number>

表示載波噪聲功率譜密度比,即cn0。取值范圍為大于0。

altitudes

Array<number>

表示衛(wèi)星高度角信息。單位是“度”,取值范圍為-90到90。

azimuths

Array<number>

表示方位角。單位是“度”,取值范圍為0到360。

carrierFrequencies

Array<number>

表示載波頻率。單位是Hz,取值范圍為大于等于0。

CachedGnssLocationsRequest

請求訂閱GNSS緩存位置上報功能接口的配置參數(shù)。

系統(tǒng)能力:SystemCapability.Location.Location.Gnss

名稱

類型

可讀

可寫

說明

reportingPeriodSec

number

表示GNSS緩存位置上報的周期,單位是毫秒。取值范圍為大于0。

wakeUpCacheQueueFull

boolean

true表示GNSS芯片底層緩存隊列滿之后會主動喚醒AP芯片,并把緩存位置上報給應用。

false表示GNSS芯片底層緩存隊列滿之后不會主動喚醒AP芯片,會把緩存位置直接丟棄。

Geofence

GNSS圍欄的配置參數(shù)。目前只支持圓形圍欄。

系統(tǒng)能力:SystemCapability.Location.Location.Geofence

名稱

類型

可讀

可寫

說明

latitude

number

表示緯度。取值范圍為-90到90。

longitude

number

表示經(jīng)度。取值范圍為-180到180。

radius

number

表示圓形圍欄的半徑。單位是米,取值范圍為大于0。

expiration

number

圍欄存活的時間,單位是毫秒。取值范圍為大于0。

GeofenceRequest

請求添加GNSS圍欄消息中攜帶的參數(shù),包括定位優(yōu)先級、定位場景和圍欄信息。

系統(tǒng)能力:SystemCapability.Location.Location.Geofence

名稱

類型

可讀

可寫

說明

scenario

LocationRequestScenario

表示定位場景。

geofence

Geofence

表示圍欄信息。

LocationCommand

擴展命令結構體。

系統(tǒng)能力:SystemCapability.Location.Location.Core

名稱

類型

可讀

可寫

說明

scenario

LocationRequestScenario

表示定位場景。

command

string

擴展命令字符串。

Location

位置信息類型。

系統(tǒng)能力:SystemCapability.Location.Location.Core

名稱

類型

可讀

可寫

說明

latitude

number

表示緯度信息,正值表示北緯,負值表示南緯。取值范圍為-90到90。

longitude

number

表示經(jīng)度信息,正值表示東經(jīng),負值表是西經(jīng)。取值范圍為-180到180。

altitude

number

表示高度信息,單位米。

accuracy

number

表示精度信息,單位米。

speed

number

表示速度信息,單位米每秒。

timeStamp

number

表示位置時間戳,UTC格式。

direction

number

表示航向信息。單位是“度”,取值范圍為0到360。

timeSinceBoot

number

表示位置時間戳,開機時間格式。

additions

Array<string>

附加信息。

additionSize

number

附加信息數(shù)量。取值范圍為大于等于0。

CountryCode

國家碼信息結構體,包含國家碼字符串和國家碼的來源信息。

系統(tǒng)能力:SystemCapability.Location.Location.Core

名稱

類型

可讀

可寫

說明

country

string

表示國家碼字符串。

type

CountryCodeType

表示國家碼信息來源。

LocationRequestPriority

位置請求中位置信息優(yōu)先級設置。

系統(tǒng)能力:SystemCapability.Location.Location.Core

名稱

說明

UNSET

0x200

表示未設置優(yōu)先級,表示LocationRequestPriority無效。

ACCURACY

0x201

表示精度優(yōu)先。

定位精度優(yōu)先策略主要以GNSS定位技術為主,在開闊場景下可以提供米級的定位精度,具體性能指標依賴用戶設備的定位硬件能力,但在室內(nèi)等強遮蔽定位場景下,無法提供準確的位置服務。

LOW_POWER

0x202

表示低功耗優(yōu)先。

低功耗定位優(yōu)先策略主要使用基站定位和WLAN、藍牙定位技術,也可以同時提供室內(nèi)和戶外場景下的位置服務,因為其依賴周邊基站、可見WLAN、藍牙設備的分布情況,定位結果的精度波動范圍較大,如果對定位結果精度要求不高,或者使用場景多在有基站、可見WLAN、藍牙設備高密度分布的情況下,推薦使用,可以有效節(jié)省設備功耗。

FIRST_FIX

0x203

表示快速獲取位置優(yōu)先,如果應用希望快速拿到一個位置,可以將優(yōu)先級設置為該字段。

快速定位優(yōu)先策略會同時使用GNSS定位、基站定位和WLAN、藍牙定位技術,以便室內(nèi)和戶外場景下,通過此策略都可以獲得位置結果,當各種定位技術都有提供位置結果時,系統(tǒng)會選擇其中精度較好的結果返回給應用。因為對各種定位技術同時使用,對設備的硬件資源消耗較大,功耗也較大。

LocationRequestScenario

位置請求中定位場景設置。

系統(tǒng)能力:SystemCapability.Location.Location.Core

名稱

說明

UNSET

0x300

表示未設置場景信息。

表示LocationRequestScenario字段無效。

NAVIGATION

0x301

表示導航場景。

適用于在戶外定位設備實時位置的場景,如車載、步行導航。

在此場景下,為保證系統(tǒng)提供位置結果精度最優(yōu),主要使用GNSS定位技術提供定位服務

此場景默認以最小1秒間隔上報定位結果。

TRAJECTORY_TRACKING

0x302

表示運動軌跡記錄場景。

適用于記錄用戶位置軌跡的場景,如運動類應用記錄軌跡功能。主要使用GNSS定位技術提供定位服務。

此場景默認以最小1秒間隔上報定位結果。

CAR_HAILING

0x303

表示打車場景。

適用于用戶出行打車時定位當前位置的場景,如網(wǎng)約車類應用。

此場景默認以最小1秒間隔上報定位結果。

DAILY_LIFE_SERVICE

0x304

表示日常服務使用場景。

適用于不需要定位用戶精確位置的使用場景,如新聞資訊、網(wǎng)購、點餐類應用,做推薦、推送時定位用戶大致位置即可。

此場景默認以最小1秒間隔上報定位結果。

NO_POWER

0x305

表示無功耗功場景,這種場景下不會主動觸發(fā)定位,會在其他應用定位時,才給當前應用返回位置。

CountryCodeType

國家碼來源類型。

系統(tǒng)能力:SystemCapability.Location.Location.Core

名稱

說明

COUNTRY_CODE_FROM_LOCALE

1

從全球化模塊的語言配置信息中獲取到的國家碼。

COUNTRY_CODE_FROM_SIM

2

從SIM卡中獲取到的國家碼。

COUNTRY_CODE_FROM_LOCATION

3

基于用戶的位置信息,通過逆地理編碼查詢到的國家碼。

COUNTRY_CODE_FROM_NETWORK

4

從蜂窩網(wǎng)絡注冊信息中獲取到的國家碼。

geoLocationManager.on('locationChange')

on(type: 'locationChange', request: LocationRequest, callback: Callback<Location>): void

開啟位置變化訂閱,并發(fā)起定位請求。

需要權限:ohos.permission.APPROXIMATELY_LOCATION

系統(tǒng)能力:SystemCapability.Location.Location.Core

參數(shù):

參數(shù)名

類型

必填

說明

type

string

設置事件類型。type為“l(fā)ocationChange”,表示位置變化。

request

LocationRequest

設置位置請求參數(shù)。

callback

Callback<Location>

接收位置變化狀態(tài)變化監(jiān)聽。

錯誤碼

以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼

錯誤碼ID

錯誤信息

3301000

Location service is unavailable.

3301100

The location switch is off.

3301200

Failed to obtain the geographical location.

示例

  1. import geoLocationManager from '@ohos.geoLocationManager';
  2. let requestInfo = {'priority': 0x203, 'scenario': 0x300, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0};
  3. let locationChange = (location) => {
  4. console.log('locationChanger: data: ' + JSON.stringify(location));
  5. };
  6. try {
  7. geoLocationManager.on('locationChange', requestInfo, locationChange);
  8. } catch (err) {
  9. console.error("errCode:" + err.code + ",errMessage:" + err.message);
  10. }

geoLocationManager.off('locationChange')

off(type: 'locationChange', callback?: Callback<Location>): void

關閉位置變化訂閱,并刪除對應的定位請求。

需要權限:ohos.permission.APPROXIMATELY_LOCATION

系統(tǒng)能力:SystemCapability.Location.Location.Core

參數(shù):

參數(shù)名

類型

必填

說明

type

string

設置事件類型。type為“l(fā)ocationChange”,表示位置變化。

callback

Callback<Location>

需要取消訂閱的回調函數(shù)。若無此參數(shù),則取消當前類型的所有訂閱。

錯誤碼

以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。

錯誤碼ID

錯誤信息

3301000

Location service is unavailable.

3301100

The location switch is off.

3301200

Failed to obtain the geographical location.

示例

  1. import geoLocationManager from '@ohos.geoLocationManager';
  2. let requestInfo = {'priority': 0x203, 'scenario': 0x300, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0};
  3. let locationChange = (location) => {
  4. console.log('locationChanger: data: ' + JSON.stringify(location));
  5. };
  6. try {
  7. geoLocationManager.on('locationChange', requestInfo, locationChange);
  8. geoLocationManager.off('locationChange', locationChange);
  9. } catch (err) {
  10. console.error("errCode:" + err.code + ",errMessage:" + err.message);
  11. }

geoLocationManager.on('locationEnabledChange')

on(type: 'locationEnabledChange', callback: Callback<boolean>): void

訂閱位置服務狀態(tài)變化。

系統(tǒng)能力:SystemCapability.Location.Location.Core

參數(shù):

參數(shù)名

類型

必填

說明

type

string

設置事件類型。type為“l(fā)ocationEnabledChange”,表示位置服務狀態(tài)。

callback

Callback<boolean>

接收位置服務狀態(tài)變化監(jiān)聽。

錯誤碼

以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。

錯誤碼ID

錯誤信息

3301000

Location service is unavailable.

示例

  1. import geoLocationManager from '@ohos.geoLocationManager';
  2. let locationEnabledChange = (state) => {
  3. console.log('locationEnabledChange: ' + JSON.stringify(state));
  4. }
  5. try {
  6. geoLocationManager.on('locationEnabledChange', locationEnabledChange);
  7. } catch (err) {
  8. console.error("errCode:" + err.code + ",errMessage:" + err.message);
  9. }

geoLocationManager.off('locationEnabledChange')

off(type: 'locationEnabledChange', callback?: Callback<boolean>): void;

取消訂閱位置服務狀態(tài)變化。

系統(tǒng)能力:SystemCapability.Location.Location.Core

參數(shù)

參數(shù)名

類型

必填

說明

type

string

設置事件類型。type為“l(fā)ocationEnabledChange”,表示位置服務狀態(tài)。

callback

Callback<boolean>

需要取消訂閱的回調函數(shù)。若無此參數(shù),則取消當前類型的所有訂閱。

錯誤碼

以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。

錯誤碼ID

錯誤信息

3301000

Location service is unavailable.

示例

  1. import geoLocationManager from '@ohos.geoLocationManager';
  2. let locationEnabledChange = (state) => {
  3. console.log('locationEnabledChange: state: ' + JSON.stringify(state));
  4. }
  5. try {
  6. geoLocationManager.on('locationEnabledChange', locationEnabledChange);
  7. geoLocationManager.off('locationEnabledChange', locationEnabledChange);
  8. } catch (err) {
  9. console.error("errCode:" + err.code + ",errMessage:" + err.message);
  10. }

geoLocationManager.on('cachedGnssLocationsChange')

on(type: 'cachedGnssLocationsChange', request: CachedGnssLocationsRequest, callback: Callback<Array<Location>>): void;

訂閱緩存GNSS定位結果上報事件。

需要權限:ohos.permission.APPROXIMATELY_LOCATION

系統(tǒng)能力:SystemCapability.Location.Location.Gnss

參數(shù)

參數(shù)名

類型

必填

說明

type

string

設置事件類型。type為“cachedGnssLocationsChange”,表示GNSS緩存定位結果上報。

request

CachedGnssLocationsRequest

GNSS緩存功能配置參數(shù)

callback

Callback<boolean>

接收GNSS緩存位置上報。

錯誤碼

以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。

錯誤碼ID

錯誤信息

3301000

Location service is unavailable.

3301100

The location switch is off.

3301200

Failed to obtain the geographical location.

示例

  1. import geoLocationManager from '@ohos.geoLocationManager';
  2. let cachedLocationsCb = (locations) => {
  3. console.log('cachedGnssLocationsChange: locations: ' + JSON.stringify(locations));
  4. }
  5. let requestInfo = {'reportingPeriodSec': 10, 'wakeUpCacheQueueFull': true};
  6. try {
  7. geoLocationManager.on('cachedGnssLocationsChange', requestInfo, cachedLocationsCb);
  8. } catch (err) {
  9. console.error("errCode:" + err.code + ",errMessage:" + err.message);
  10. }

geoLocationManager.off('cachedGnssLocationsChange')

off(type: 'cachedGnssLocationsChange', callback?: Callback<Array<Location>>): void;

取消訂閱緩存GNSS定位結果上報事件。

需要權限:ohos.permission.APPROXIMATELY_LOCATION

系統(tǒng)能力:SystemCapability.Location.Location.Gnss

參數(shù)

參數(shù)名

類型

必填

說明

type

string

設置事件類型。type為“cachedGnssLocationsChange”,表示GNSS緩存定位結果上報。

callback

Callback<boolean>

需要取消訂閱的回調函數(shù)。若無此參數(shù),則取消當前類型的所有訂閱。

錯誤碼

以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。

錯誤碼ID

錯誤信息

3301000

Location service is unavailable.

3301100

The location switch is off.

3301200

Failed to obtain the geographical location.

示例

  1. import geoLocationManager from '@ohos.geoLocationManager';
  2. let cachedLocationsCb = (locations) => {
  3. console.log('cachedGnssLocationsChange: locations: ' + JSON.stringify(locations));
  4. }
  5. let requestInfo = {'reportingPeriodSec': 10, 'wakeUpCacheQueueFull': true};
  6. try {
  7. geoLocationManager.on('cachedGnssLocationsChange', requestInfo, cachedLocationsCb);
  8. geoLocationManager.off('cachedGnssLocationsChange');
  9. } catch (err) {
  10. console.error("errCode:" + err.code + ",errMessage:" + err.message);
  11. }

geoLocationManager.on('satelliteStatusChange')

on(type: 'satelliteStatusChange', callback: Callback<SatelliteStatusInfo>): void;

訂閱GNSS衛(wèi)星狀態(tài)信息上報事件。

需要權限:ohos.permission.APPROXIMATELY_LOCATION

系統(tǒng)能力:SystemCapability.Location.Location.Gnss

參數(shù)

參數(shù)名

類型

必填

說明

type

string

設置事件類型。type為“satelliteStatusChange”,表示訂閱GNSS衛(wèi)星狀態(tài)信息上報。

callback

Callback<SatelliteStatusInfo>

接收GNSS衛(wèi)星狀態(tài)信息上報。

錯誤碼

以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。

錯誤碼ID

錯誤信息

3301000

Location service is unavailable.

3301100

The location switch is off.

示例

  1. import geoLocationManager from '@ohos.geoLocationManager';
  2. let gnssStatusCb = (satelliteStatusInfo) => {
  3. console.log('satelliteStatusChange: ' + JSON.stringify(satelliteStatusInfo));
  4. }
  5. try {
  6. geoLocationManager.on('satelliteStatusChange', gnssStatusCb);
  7. } catch (err) {
  8. console.error("errCode:" + err.code + ",errMessage:" + err.message);
  9. }

geoLocationManager.off('satelliteStatusChange')

off(type: 'satelliteStatusChange', callback?: Callback<SatelliteStatusInfo>): void;

取消訂閱GNSS衛(wèi)星狀態(tài)信息上報事件。

需要權限:ohos.permission.APPROXIMATELY_LOCATION

系統(tǒng)能力:SystemCapability.Location.Location.Gnss

參數(shù)

參數(shù)名

類型

必填

說明

type

string

設置事件類型。type為“satelliteStatusChange”,表示訂閱GNSS衛(wèi)星狀態(tài)信息上報。

callback

Callback<SatelliteStatusInfo>

需要取消訂閱的回調函數(shù)。若無此參數(shù),則取消當前類型的所有訂閱。

錯誤碼

以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。

錯誤碼ID

錯誤信息

3301000

Location service is unavailable.

3301100

The location switch is off.

示例

  1. import geoLocationManager from '@ohos.geoLocationManager';
  2. let gnssStatusCb = (satelliteStatusInfo) => {
  3. console.log('satelliteStatusChange: ' + JSON.stringify(satelliteStatusInfo));
  4. }
  5. try {
  6. geoLocationManager.on('satelliteStatusChange', gnssStatusCb);
  7. geoLocationManager.off('satelliteStatusChange', gnssStatusCb);
  8. } catch (err) {
  9. console.error("errCode:" + err.code + ",errMessage:" + err.message);
  10. }

geoLocationManager.on('nmeaMessage')

on(type: 'nmeaMessage', callback: Callback<string>): void;

訂閱GNSS NMEA信息上報事件。

需要權限:ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION

系統(tǒng)能力:SystemCapability.Location.Location.Gnss

參數(shù)

參數(shù)名

類型

必填

說明

type

string

設置事件類型。type為“nmeaMessage”,表示訂閱GNSS NMEA信息上報。

callback

Callback<string>

接收GNSS NMEA信息上報。

錯誤碼

以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼

錯誤碼ID

錯誤信息

3301000

Location service is unavailable.

3301100

The location switch is off.

示例

  1. import geoLocationManager from '@ohos.geoLocationManager';
  2. let nmeaCb = (str) => {
  3. console.log('nmeaMessage: ' + JSON.stringify(str));
  4. }
  5. try {
  6. geoLocationManager.on('nmeaMessage', nmeaCb );
  7. } catch (err) {
  8. console.error("errCode:" + err.code + ",errMessage:" + err.message);
  9. }

geoLocationManager.off('nmeaMessage')

off(type: 'nmeaMessage', callback?: Callback<string>): void;

取消訂閱GNSS NMEA信息上報事件。

需要權限:ohos.permission.LOCATION 和 ohos.permission.APPROXIMATELY_LOCATION

系統(tǒng)能力:SystemCapability.Location.Location.Gnss

參數(shù)

參數(shù)名

類型

必填

說明

type

string

設置事件類型。type為“nmeaMessage”,表示訂閱GNSS NMEA信息上報。

callback

Callback<string>

需要取消訂閱的回調函數(shù)。若無此參數(shù),則取消當前類型的所有訂閱。

錯誤碼

以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼

錯誤碼ID

錯誤信息

3301000

Location service is unavailable.

3301100

The location switch is off.

示例

  1. import geoLocationManager from '@ohos.geoLocationManager';
  2. let nmeaCb = (str) => {
  3. console.log('nmeaMessage: ' + JSON.stringify(str));
  4. }
  5. try {
  6. geoLocationManager.on('nmeaMessage', nmeaCb);
  7. geoLocationManager.off('nmeaMessage', nmeaCb);
  8. } catch (err) {
  9. console.error("errCode:" + err.code + ",errMessage:" + err.message);
  10. }

geoLocationManager.on('gnssFenceStatusChange')

on(type: 'gnssFenceStatusChange', request: GeofenceRequest, want: WantAgent): void;

添加一個圍欄,并訂閱地理圍欄事件。

需要權限:ohos.permission.APPROXIMATELY_LOCATION

系統(tǒng)能力:SystemCapability.Location.Location.Geofence

參數(shù)

參數(shù)名

類型

必填

說明

type

string

設置事件類型。type為“gnssFenceStatusChange”,表示訂閱圍欄事件上報。

request

GeofenceRequest

圍欄的配置參數(shù)。

want

WantAgent

用于接收地理圍欄事件上報(進出圍欄)。

錯誤碼

以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。

錯誤碼ID

錯誤信息

3301000

Location service is unavailable.

3301100

The location switch is off.

3301600

Failed to operate the geofence.

示例

  1. import geoLocationManager from '@ohos.geoLocationManager';
  2. import wantAgent from '@ohos.app.ability.wantAgent';
  3. let wantAgentInfo = {
  4. wants: [
  5. {
  6. bundleName: "com.example.myapplication",
  7. abilityName: "EntryAbility",
  8. action: "action1"
  9. }
  10. ],
  11. operationType: wantAgent.OperationType.START_ABILITY,
  12. requestCode: 0,
  13. wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
  14. };
  15. wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => {
  16. let requestInfo = {'priority': 0x201, 'scenario': 0x301, "geofence": {"latitude": 121, "longitude": 26, "radius": 100, "expiration": 10000}};
  17. try {
  18. geoLocationManager.on('gnssFenceStatusChange', requestInfo, wantAgentObj);
  19. } catch (err) {
  20. console.error("errCode:" + err.code + ",errMessage:" + err.message);
  21. }
  22. });

geoLocationManager.off('gnssFenceStatusChange')

off(type: 'gnssFenceStatusChange', request: GeofenceRequest, want: WantAgent): void;

刪除一個圍欄,并取消訂閱該圍欄事件。

需要權限:ohos.permission.APPROXIMATELY_LOCATION

系統(tǒng)能力:SystemCapability.Location.Location.Geofence

參數(shù)

參數(shù)名

類型

必填

說明

type

string

設置事件類型。type為“gnssFenceStatusChange”,表示訂閱圍欄事件上報。

request

GeofenceRequest

圍欄的配置參數(shù)。

want

WantAgent

用于接收地理圍欄事件上報(進出圍欄)。

錯誤碼

以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。

錯誤碼ID

錯誤信息

3301000

Location service is unavailable.

3301100

The location switch is off.

3301600

Failed to operate the geofence.

示例

  1. import geoLocationManager from '@ohos.geoLocationManager';
  2. import wantAgent from '@ohos.app.ability.wantAgent';
  3. let wantAgentInfo = {
  4. wants: [
  5. {
  6. bundleName: "com.example.myapplication",
  7. abilityName: "EntryAbility",
  8. action: "action1",
  9. }
  10. ],
  11. operationType: wantAgent.OperationType.START_ABILITY,
  12. requestCode: 0,
  13. wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
  14. };
  15. wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => {
  16. let requestInfo = {'priority': 0x201, 'scenario': 0x301, "geofence": {"latitude": 121, "longitude": 26, "radius": 100, "expiration": 10000}};
  17. try {
  18. geoLocationManager.on('gnssFenceStatusChange', requestInfo, wantAgentObj);
  19. geoLocationManager.off('gnssFenceStatusChange', requestInfo, wantAgentObj);
  20. } catch (err) {
  21. console.error("errCode:" + err.code + ",errMessage:" + err.message);
  22. }
  23. });

geoLocationManager.on('countryCodeChange')

on(type: 'countryCodeChange', callback: Callback<CountryCode>): void;

訂閱國家碼信息變化事件。

系統(tǒng)能力:SystemCapability.Location.Location.Core

參數(shù)

參數(shù)名

類型

必填

說明

type

string

設置事件類型。type為“countryCodeChange”,表示訂閱國家碼信息變化事件。

callback

Callback<CountryCode>

接收國家碼信息上報。

錯誤碼

以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。

錯誤碼ID

錯誤信息

3301000

Location service is unavailable.

3301500

Failed to query the area information.

示例

  1. import geoLocationManager from '@ohos.geoLocationManager';
  2. let callback = (code) => {
  3. console.log('countryCodeChange: ' + JSON.stringify(code));
  4. }
  5. try {
  6. geoLocationManager.on('countryCodeChange', callback);
  7. } catch (err) {
  8. console.error("errCode:" + err.code + ",errMessage:" + err.message);
  9. }

geoLocationManager.off('countryCodeChange')

off(type: 'countryCodeChange', callback?: Callback<CountryCode>): void;

取消訂閱國家碼變化事件。

系統(tǒng)能力:SystemCapability.Location.Location.Core

參數(shù)

參數(shù)名

類型

必填

說明

type

string

設置事件類型。type為“countryCodeChange”,表示取消訂閱國家碼信息變化事件。

callback

Callback<CountryCode>

需要取消訂閱的回調函數(shù)。若無此參數(shù),則取消當前類型的所有訂閱。

錯誤碼

以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。

錯誤碼ID

錯誤信息

3301000

Location service is unavailable.

3301500

Failed to query the area information.

示例

  1. import geoLocationManager from '@ohos.geoLocationManager';
  2. let callback = (code) => {
  3. console.log('countryCodeChange: ' + JSON.stringify(code));
  4. }
  5. try {
  6. geoLocationManager.on('countryCodeChange', callback);
  7. geoLocationManager.off('countryCodeChange', callback);
  8. } catch (err) {
  9. console.error("errCode:" + err.code + ",errMessage:" + err.message);
  10. }

geoLocationManager.getCurrentLocation

getCurrentLocation(request: CurrentLocationRequest, callback: AsyncCallback<Location>): void

獲取當前位置,使用callback回調異步返回結果。

需要權限:ohos.permission.APPROXIMATELY_LOCATION

系統(tǒng)能力:SystemCapability.Location.Location.Core

參數(shù)

參數(shù)名

類型

必填

說明

request

CurrentLocationRequest

設置位置請求參數(shù)。

callback

AsyncCallback<Location>

用來接收位置信息的回調。

錯誤碼

以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。

錯誤碼ID

錯誤信息

3301000

Location service is unavailable.

3301100

The location switch is off.

3301200

Failed to obtain the geographical location.

示例

  1. import geoLocationManager from '@ohos.geoLocationManager';
  2. let requestInfo = {'priority': 0x203, 'scenario': 0x300,'maxAccuracy': 0};
  3. let locationChange = (err, location) => {
  4. if (err) {
  5. console.log('locationChanger: err=' + JSON.stringify(err));
  6. }
  7. if (location) {
  8. console.log('locationChanger: location=' + JSON.stringify(location));
  9. }
  10. };
  11. try {
  12. geoLocationManager.getCurrentLocation(requestInfo, locationChange);
  13. } catch (err) {
  14. console.error("errCode:" + err.code + ",errMessage:" + err.message);
  15. }

geoLocationManager.getCurrentLocation

getCurrentLocation(callback: AsyncCallback<Location>): void;

獲取當前位置,通過callback方式異步返回結果。

需要權限:ohos.permission.APPROXIMATELY_LOCATION

系統(tǒng)能力:SystemCapability.Location.Location.Core

參數(shù)

參數(shù)名

類型

必填

說明

callback

AsyncCallback<Location>

用來接收位置信息的回調。

錯誤碼

以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。

錯誤碼ID

錯誤信息

3301000

Location service is unavailable.

3301100

The location switch is off.

3301200

Failed to obtain the geographical location.

示例

  1. import geoLocationManager from '@ohos.geoLocationManager';
  2. let locationChange = (err, location) => {
  3. if (err) {
  4. console.log('locationChanger: err=' + JSON.stringify(err));
  5. }
  6. if (location) {
  7. console.log('locationChanger: location=' + JSON.stringify(location));
  8. }
  9. };
  10. try {
  11. geoLocationManager.getCurrentLocation(locationChange);
  12. } catch (err) {
  13. console.error("errCode:" + err.code + ",errMessage:" + err.message);
  14. }

geoLocationManager.getCurrentLocation

getCurrentLocation(request?: CurrentLocationRequest): Promise<Location>

獲取當前位置,使用Promise方式異步返回結果。

需要權限:ohos.permission.APPROXIMATELY_LOCATION

系統(tǒng)能力:SystemCapability.Location.Location.Core

參數(shù)

參數(shù)名

類型

必填

說明

request

CurrentLocationRequest

設置位置請求參數(shù)。

返回值

參數(shù)名

類型

必填

說明

Promise<Location>

Location

NA

返回位置信息。

錯誤碼

以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。

錯誤碼ID

錯誤信息

3301000

Location service is unavailable.

3301100

The location switch is off.

3301200

Failed to obtain the geographical location.

示例

  1. import geoLocationManager from '@ohos.geoLocationManager';
  2. let requestInfo = {'priority': 0x203, 'scenario': 0x300,'maxAccuracy': 0};
  3. try {
  4. geoLocationManager.getCurrentLocation(requestInfo).then((result) => {
  5. console.log('current location: ' + JSON.stringify(result));
  6. })
  7. .catch((error) => {
  8. console.log('promise, getCurrentLocation: error=' + JSON.stringify(error));
  9. });
  10. } catch (err) {
  11. console.error("errCode:" + err.code + ",errMessage:" + err.message);
  12. }

geoLocationManager.getLastLocation

getLastLocation(): Location

獲取上一次位置。

需要權限:ohos.permission.APPROXIMATELY_LOCATION

系統(tǒng)能力:SystemCapability.Location.Location.Core

返回值

參數(shù)名

類型

必填

說明

Location

Location

NA

位置信息。

錯誤碼

以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。

錯誤碼ID

錯誤信息

3301000

Location service is unavailable.

3301100

The location switch is off.

3301200

Failed to obtain the geographical location.

示例

  1. import geoLocationManager from '@ohos.geoLocationManager';
  2. try {
  3. let location = geoLocationManager.getLastLocation();
  4. } catch (err) {
  5. console.error("errCode:" + err.code + ",errMessage:" + err.message);
  6. }

geoLocationManager.isLocationEnabled

isLocationEnabled(): boolean

判斷位置服務是否已經(jīng)使能。

系統(tǒng)能力:SystemCapability.Location.Location.Core

返回值

參數(shù)名

類型

必填

說明

boolean

boolean

NA

位置服務是否已經(jīng)使能。

錯誤碼

以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。

錯誤碼ID

錯誤信息

3301000

Location service is unavailable.

示例

  1. import geoLocationManager from '@ohos.geoLocationManager';
  2. try {
  3. let locationEnabled = geoLocationManager.isLocationEnabled();
  4. } catch (err) {
  5. console.error("errCode:" + err.code + ",errMessage:" + err.message);
  6. }

geoLocationManager.getAddressesFromLocation

getAddressesFromLocation(request: ReverseGeoCodeRequest, callback: AsyncCallback<Array<GeoAddress>>): void

調用逆地理編碼服務,將坐標轉換為地理描述,使用callback回調異步返回結果。

系統(tǒng)能力:SystemCapability.Location.Location.Geocoder

參數(shù)

參數(shù)名

類型

必填

說明

request

ReverseGeoCodeRequest

設置逆地理編碼請求的相關參數(shù)。

callback

AsyncCallback<Array<GeoAddress>>

接收逆地理編碼結果的回調函數(shù)。

錯誤碼

以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。

錯誤碼ID

錯誤信息

3301000

Location service is unavailable.

3301300

Reverse geocoding query failed.

示例

  1. import geoLocationManager from '@ohos.geoLocationManager';
  2. let reverseGeocodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1};
  3. try {
  4. geoLocationManager.getAddressesFromLocation(reverseGeocodeRequest, (err, data) => {
  5. if (err) {
  6. console.log('getAddressesFromLocation: err=' + JSON.stringify(err));
  7. }
  8. if (data) {
  9. console.log('getAddressesFromLocation: data=' + JSON.stringify(data));
  10. }
  11. });
  12. } catch (err) {
  13. console.error("errCode:" + err.code + ",errMessage:" + err.message);
  14. }

geoLocationManager.getAddressesFromLocation

getAddressesFromLocation(request: ReverseGeoCodeRequest): Promise<Array<GeoAddress>>;

調用逆地理編碼服務,將坐標轉換為地理描述,使用Promise方式異步返回結果。

系統(tǒng)能力:SystemCapability.Location.Location.Geocoder

參數(shù)

參數(shù)名

類型

必填

說明

request

ReverseGeoCodeRequest

設置逆地理編碼請求的相關參數(shù)。

返回值

參數(shù)名

類型

必填

說明

Promise<Array<GeoAddress>>

Array<GeoAddress>

NA

返回地理描述信息。

錯誤碼

以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。

錯誤碼ID

錯誤信息

3301000

Location service is unavailable.

3301300

Reverse geocoding query failed.

示例

  1. import geoLocationManager from '@ohos.geoLocationManager';
  2. let reverseGeocodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1};
  3. try {
  4. geoLocationManager.getAddressesFromLocation(reverseGeocodeRequest).then((data) => {
  5. console.log('getAddressesFromLocation: ' + JSON.stringify(data));
  6. })
  7. .catch((error) => {
  8. console.log('promise, getAddressesFromLocation: error=' + JSON.stringify(error));
  9. });
  10. } catch (err) {
  11. console.error("errCode:" + err.code + ",errMessage:" + err.message);
  12. }

geoLocationManager.getAddressesFromLocationName

getAddressesFromLocationName(request: GeoCodeRequest, callback: AsyncCallback<Array<GeoAddress>>): void

調用地理編碼服務,將地理描述轉換為具體坐標,使用callback回調異步返回結果。

系統(tǒng)能力:SystemCapability.Location.Location.Geocoder

參數(shù)

參數(shù)名

類型

必填

說明

request

GeoCodeRequest

設置地理編碼請求的相關參數(shù)。

callback

AsyncCallback<Array<GeoAddress>>

接收地理編碼結果的回調函數(shù)。

錯誤碼

以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼

錯誤碼ID

錯誤信息

3301000

Location service is unavailable.

3301400

Geocoding query failed.

示例

  1. import geoLocationManager from '@ohos.geoLocationManager';
  2. let geocodeRequest = {"description": "上海市浦東新區(qū)xx路xx號", "maxItems": 1};
  3. try {
  4. geoLocationManager.getAddressesFromLocationName(geocodeRequest, (err, data) => {
  5. if (err) {
  6. console.log('getAddressesFromLocationName: err=' + JSON.stringify(err));
  7. }
  8. if (data) {
  9. console.log('getAddressesFromLocationName: data=' + JSON.stringify(data));
  10. }
  11. });
  12. } catch (err) {
  13. console.error("errCode:" + err.code + ",errMessage:" + err.message);
  14. }

geoLocationManager.getAddressesFromLocationName

getAddressesFromLocationName(request: GeoCodeRequest): Promise<Array<GeoAddress>>

調用地理編碼服務,將地理描述轉換為具體坐標,使用Promise方式異步返回結果。

系統(tǒng)能力:SystemCapability.Location.Location.Geocoder

參數(shù)

參數(shù)名

類型

必填

說明

request

GeoCodeRequest

設置地理編碼請求的相關參數(shù)。

返回值

參數(shù)名

類型

必填

說明

Promise<Array<GeoAddress>>

Array<GeoAddress>

NA

返回地理編碼查詢結果。

錯誤碼

以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。

錯誤碼ID

錯誤信息

3301000

Location service is unavailable.

3301400

Geocoding query failed.

示例

  1. import geoLocationManager from '@ohos.geoLocationManager';
  2. let geocodeRequest = {"description": "上海市浦東新區(qū)xx路xx號", "maxItems": 1};
  3. try {
  4. geoLocationManager.getAddressesFromLocationName(geocodeRequest).then((result) => {
  5. console.log('getAddressesFromLocationName: ' + JSON.stringify(result));
  6. })
  7. .catch((error) => {
  8. console.log('promise, getAddressesFromLocationName: error=' + JSON.stringify(error));
  9. });
  10. } catch (err) {
  11. console.error("errCode:" + err.code + ",errMessage:" + err.message);
  12. }

geoLocationManager.isGeocoderAvailable

isGeocoderAvailable(): boolean;

判斷(逆)地理編碼服務狀態(tài)。

系統(tǒng)能力:SystemCapability.Location.Location.Geocoder

返回值

參數(shù)名

類型

必填

說明

boolean

boolean

NA

返回(逆)地理編碼服務是否可用。

錯誤碼

以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼

錯誤碼ID

錯誤信息

3301000

Location service is unavailable.

示例

  1. import geoLocationManager from '@ohos.geoLocationManager';
  2. try {
  3. let isAvailable = geoLocationManager.isGeocoderAvailable();
  4. } catch (err) {
  5. console.error("errCode:" + err.code + ",errMessage:" + err.message);
  6. }

geoLocationManager.getCachedGnssLocationsSize

getCachedGnssLocationsSize(callback: AsyncCallback<number>): void;

獲取GNSS芯片緩存位置的個數(shù)。

需要權限:ohos.permission.APPROXIMATELY_LOCATION

系統(tǒng)能力:SystemCapability.Location.Location.Gnss

參數(shù)

參數(shù)名

類型

必填

說明

callback

AsyncCallback<number>

用來接收GNSS芯片緩存位置個數(shù)的回調。

錯誤碼

以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。

錯誤碼ID

錯誤信息

3301000

Location service is unavailable.

3301100

The location switch is off.

示例

  1. import geoLocationManager from '@ohos.geoLocationManager';
  2. try {
  3. geoLocationManager.getCachedGnssLocationsSize((err, size) => {
  4. if (err) {
  5. console.log('getCachedGnssLocationsSize: err=' + JSON.stringify(err));
  6. }
  7. if (size) {
  8. console.log('getCachedGnssLocationsSize: size=' + JSON.stringify(size));
  9. }
  10. });
  11. } catch (err) {
  12. console.error("errCode:" + err.code + ",errMessage:" + err.message);
  13. }

geoLocationManager.getCachedGnssLocationsSize

getCachedGnssLocationsSize(): Promise<number>;

獲取GNSS芯片緩存位置的個數(shù)。

需要權限:ohos.permission.APPROXIMATELY_LOCATION

系統(tǒng)能力:SystemCapability.Location.Location.Gnss

返回值

參數(shù)名

類型

必填

說明

Promise<number>

number

NA

返回GNSS緩存位置的個數(shù)。

錯誤碼

以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼

錯誤碼ID

錯誤信息

3301000

Location service is unavailable.

3301100

The location switch is off.

示例

  1. import geoLocationManager from '@ohos.geoLocationManager';
  2. try {
  3. geoLocationManager.getCachedGnssLocationsSize().then((result) => {
  4. console.log('promise, getCachedGnssLocationsSize: ' + JSON.stringify(result));
  5. })
  6. .catch((error) => {
  7. console.log('promise, getCachedGnssLocationsSize: error=' + JSON.stringify(error));
  8. });
  9. } catch (err) {
  10. console.error("errCode:" + err.code + ",errMessage:" + err.message);
  11. }

geoLocationManager.flushCachedGnssLocations

flushCachedGnssLocations(callback: AsyncCallback<void>): void;

讀取并清空GNSS芯片所有緩存位置。

需要權限:ohos.permission.APPROXIMATELY_LOCATION

系統(tǒng)能力:SystemCapability.Location.Location.Gnss

參數(shù)

參數(shù)名

類型

必填

說明

callback

AsyncCallback<void>

用來接收錯誤碼信息。

錯誤碼

以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。

錯誤碼ID

錯誤信息

3301000

Location service is unavailable.

3301100

The location switch is off.

3301200

Failed to obtain the geographical location.

示例

  1. import geoLocationManager from '@ohos.geoLocationManager';
  2. try {
  3. geoLocationManager.flushCachedGnssLocations((err, result) => {
  4. if (err) {
  5. console.log('flushCachedGnssLocations: err=' + JSON.stringify(err));
  6. }
  7. });
  8. } catch (err) {
  9. console.error("errCode:" + err.code + ",errMessage:" + err.message);
  10. }

geoLocationManager.flushCachedGnssLocations

flushCachedGnssLocations(): Promise<void>;

讀取并清空GNSS芯片所有緩存位置。

需要權限:ohos.permission.APPROXIMATELY_LOCATION

系統(tǒng)能力:SystemCapability.Location.Location.Gnss

返回值

參數(shù)名

類型

必填

說明

Promise<void>

void

NA

接收錯誤碼。

錯誤碼

以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。

錯誤碼ID

錯誤信息

3301000

Location service is unavailable.

3301100

The location switch is off.

3301200

Failed to obtain the geographical location.

示例

  1. import geoLocationManager from '@ohos.geoLocationManager';
  2. try {
  3. geoLocationManager.flushCachedGnssLocations().then((result) => {
  4. console.log('promise, flushCachedGnssLocations success');
  5. })
  6. .catch((error) => {
  7. console.log('promise, flushCachedGnssLocations: error=' + JSON.stringify(error));
  8. });
  9. } catch (err) {
  10. console.error("errCode:" + err.code + ",errMessage:" + err.message);
  11. }

geoLocationManager.sendCommand

sendCommand(command: LocationCommand, callback: AsyncCallback<void>): void;

給位置服務子系統(tǒng)的各個部件發(fā)送擴展命令。

系統(tǒng)能力:SystemCapability.Location.Location.Core

參數(shù)

參數(shù)名

類型

必填

說明

command

LocationCommand

指定目標場景,和將要發(fā)送的命令(字符串)。

callback

AsyncCallback<void>

用來接收錯誤碼。

錯誤碼

以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。

錯誤碼ID

錯誤信息

3301000

Location service is unavailable.

示例

  1. import geoLocationManager from '@ohos.geoLocationManager';
  2. let requestInfo = {'scenario': 0x301, 'command': "command_1"};
  3. try {
  4. geoLocationManager.sendCommand(requestInfo, (err, result) => {
  5. if (err) {
  6. console.log('sendCommand: err=' + JSON.stringify(err));
  7. }
  8. });
  9. } catch (err) {
  10. console.error("errCode:" + err.code + ",errMessage:" + err.message);
  11. }

geoLocationManager.sendCommand

sendCommand(command: LocationCommand): Promise<void>;

給位置服務子系統(tǒng)的各個部件發(fā)送擴展命令。

系統(tǒng)能力:SystemCapability.Location.Location.Core

參數(shù)

參數(shù)名

類型

必填

說明

command

LocationCommand

指定目標場景,和將要發(fā)送的命令(字符串)。

返回值

參數(shù)名

類型

必填

說明

Promise<void>

void

NA

接收錯誤碼。

錯誤碼

以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。

錯誤碼ID

錯誤信息

3301000

Location service is unavailable.

示例

  1. import geoLocationManager from '@ohos.geoLocationManager';
  2. let requestInfo = {'scenario': 0x301, 'command': "command_1"};
  3. try {
  4. geoLocationManager.sendCommand(requestInfo).then((result) => {
  5. console.log('promise, sendCommand success');
  6. })
  7. .catch((error) => {
  8. console.log('promise, sendCommand: error=' + JSON.stringify(error));
  9. });
  10. } catch (err) {
  11. console.error("errCode:" + err.code + ",errMessage:" + err.message);
  12. }

geoLocationManager.getCountryCode

getCountryCode(callback: AsyncCallback<CountryCode>): void;

查詢當前的國家碼。

系統(tǒng)能力:SystemCapability.Location.Location.Core

參數(shù)

參數(shù)名

類型

必填

說明

callback

AsyncCallback<CountryCode>

用來接收國家碼。

錯誤碼

以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。

錯誤碼ID

錯誤信息

3301000

Location service is unavailable.

3301500

Failed to query the area information.

示例

  1. import geoLocationManager from '@ohos.geoLocationManager';
  2. try {
  3. geoLocationManager.getCountryCode((err, result) => {
  4. if (err) {
  5. console.log('getCountryCode: err=' + JSON.stringify(err));
  6. }
  7. if (result) {
  8. console.log('getCountryCode: result=' + JSON.stringify(result));
  9. }
  10. });
  11. } catch (err) {
  12. console.error("errCode:" + err.code + ",errMessage:" + err.message);
  13. }

geoLocationManager.getCountryCode

getCountryCode(): Promise<CountryCode>;

查詢當前的國家碼。

系統(tǒng)能力:SystemCapability.Location.Location.Core

返回值

參數(shù)名

類型

必填

說明

Promise<CountryCode>

CountryCode

NA

用來接收國家碼。

錯誤碼

以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼

錯誤碼ID

錯誤信息

3301000

Location service is unavailable.

3301500

Failed to query the area information.

示例

  1. import geoLocationManager from '@ohos.geoLocationManager';
  2. try {
  3. geoLocationManager.getCountryCode()
  4. .then((result) => {
  5. console.log('promise, getCountryCode: result=' + JSON.stringify(result));
  6. })
  7. .catch((error) => {
  8. console.log('promise, getCountryCode: error=' + JSON.stringify(error));
  9. });
  10. } catch (err) {
  11. console.error("errCode:" + err.code + ",errMessage:" + err.message);
  12. }
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號