位置服務提供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ā)者可以在應用配置文件中聲明所需要的權限,具體可參考授權申請指導。
逆地理編碼請求接口。
系統(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。 |
地理編碼請求接口。
系統(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。 |
地理編碼類型。
系統(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。 |
位置信息請求類型。
系統(tǒng)能力:SystemCapability.Location.Location.Core
名稱 | 類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
priority | 是 | 是 | 表示優(yōu)先級信息。取值范圍見LocationRequestPriority的定義。 | |
scenario | 是 | 是 | 表示場景信息。取值范圍見LocationRequestScenario的定義。 | |
timeInterval | number | 是 | 是 | 表示上報位置信息的時間間隔,單位是秒。取值范圍為大于0。 |
distanceInterval | number | 是 | 是 | 表示上報位置信息的距離間隔。單位是米,取值范圍為大于0。 |
maxAccuracy | number | 是 | 是 | 表示精度信息。僅在精確位置功能場景下有效,模糊位置功能生效場景下該字段無意義。取值范圍為大于0。 |
當前位置信息請求類型。
系統(tǒng)能力:SystemCapability.Location.Location.Core
名稱 | 類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
priority | 是 | 是 | 表示優(yōu)先級信息。取值范圍見LocationRequestPriority的定義。 | |
scenario | 是 | 是 | 表示場景信息。取值范圍見LocationRequestScenario的定義。 | |
maxAccuracy | number | 是 | 是 | 表示精度信息,單位是米。僅在精確位置功能場景下有效,模糊位置功能生效場景下該字段無意義。取值范圍為大于0。 |
timeoutMs | number | 是 | 是 | 表示超時時間,單位是毫秒,最小為1000毫秒。取值范圍為大于等于1000。 |
衛(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。 |
請求訂閱GNSS緩存位置上報功能接口的配置參數(shù)。
系統(tǒng)能力:SystemCapability.Location.Location.Gnss
名稱 | 類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
reportingPeriodSec | number | 是 | 是 | 表示GNSS緩存位置上報的周期,單位是毫秒。取值范圍為大于0。 |
wakeUpCacheQueueFull | boolean | 是 | 是 | true表示GNSS芯片底層緩存隊列滿之后會主動喚醒AP芯片,并把緩存位置上報給應用。 false表示GNSS芯片底層緩存隊列滿之后不會主動喚醒AP芯片,會把緩存位置直接丟棄。 |
GNSS圍欄的配置參數(shù)。目前只支持圓形圍欄。
系統(tǒng)能力:SystemCapability.Location.Location.Geofence
名稱 | 類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
latitude | number | 是 | 是 | 表示緯度。取值范圍為-90到90。 |
longitude | number | 是 | 是 | 表示經(jīng)度。取值范圍為-180到180。 |
radius | number | 是 | 是 | 表示圓形圍欄的半徑。單位是米,取值范圍為大于0。 |
expiration | number | 是 | 是 | 圍欄存活的時間,單位是毫秒。取值范圍為大于0。 |
請求添加GNSS圍欄消息中攜帶的參數(shù),包括定位優(yōu)先級、定位場景和圍欄信息。
系統(tǒng)能力:SystemCapability.Location.Location.Geofence
名稱 | 類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
scenario | 是 | 是 | 表示定位場景。 | |
geofence | 是 | 是 | 表示圍欄信息。 |
擴展命令結構體。
系統(tǒng)能力:SystemCapability.Location.Location.Core
名稱 | 類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
scenario | 是 | 是 | 表示定位場景。 | |
command | string | 是 | 是 | 擴展命令字符串。 |
位置信息類型。
系統(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。 |
國家碼信息結構體,包含國家碼字符串和國家碼的來源信息。
系統(tǒng)能力:SystemCapability.Location.Location.Core
名稱 | 類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
country | string | 是 | 否 | 表示國家碼字符串。 |
type | 是 | 否 | 表示國家碼信息來源。 |
位置請求中位置信息優(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)會選擇其中精度較好的結果返回給應用。因為對各種定位技術同時使用,對設備的硬件資源消耗較大,功耗也較大。 |
位置請求中定位場景設置。
系統(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ā)定位,會在其他應用定位時,才給當前應用返回位置。 |
國家碼來源類型。
系統(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)絡注冊信息中獲取到的國家碼。 |
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 | 是 | 設置位置請求參數(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. |
示例
- import geoLocationManager from '@ohos.geoLocationManager';
- let requestInfo = {'priority': 0x203, 'scenario': 0x300, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0};
- let locationChange = (location) => {
- console.log('locationChanger: data: ' + JSON.stringify(location));
- };
- try {
- geoLocationManager.on('locationChange', requestInfo, locationChange);
- } catch (err) {
- console.error("errCode:" + err.code + ",errMessage:" + err.message);
- }
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. |
示例
- import geoLocationManager from '@ohos.geoLocationManager';
- let requestInfo = {'priority': 0x203, 'scenario': 0x300, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0};
- let locationChange = (location) => {
- console.log('locationChanger: data: ' + JSON.stringify(location));
- };
- try {
- geoLocationManager.on('locationChange', requestInfo, locationChange);
- geoLocationManager.off('locationChange', locationChange);
- } catch (err) {
- console.error("errCode:" + err.code + ",errMessage:" + err.message);
- }
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. |
示例
- import geoLocationManager from '@ohos.geoLocationManager';
- let locationEnabledChange = (state) => {
- console.log('locationEnabledChange: ' + JSON.stringify(state));
- }
- try {
- geoLocationManager.on('locationEnabledChange', locationEnabledChange);
- } catch (err) {
- console.error("errCode:" + err.code + ",errMessage:" + err.message);
- }
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. |
示例
- import geoLocationManager from '@ohos.geoLocationManager';
- let locationEnabledChange = (state) => {
- console.log('locationEnabledChange: state: ' + JSON.stringify(state));
- }
- try {
- geoLocationManager.on('locationEnabledChange', locationEnabledChange);
- geoLocationManager.off('locationEnabledChange', locationEnabledChange);
- } catch (err) {
- console.error("errCode:" + err.code + ",errMessage:" + err.message);
- }
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 | 是 | 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. |
示例
- import geoLocationManager from '@ohos.geoLocationManager';
- let cachedLocationsCb = (locations) => {
- console.log('cachedGnssLocationsChange: locations: ' + JSON.stringify(locations));
- }
- let requestInfo = {'reportingPeriodSec': 10, 'wakeUpCacheQueueFull': true};
- try {
- geoLocationManager.on('cachedGnssLocationsChange', requestInfo, cachedLocationsCb);
- } catch (err) {
- console.error("errCode:" + err.code + ",errMessage:" + err.message);
- }
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. |
示例
- import geoLocationManager from '@ohos.geoLocationManager';
- let cachedLocationsCb = (locations) => {
- console.log('cachedGnssLocationsChange: locations: ' + JSON.stringify(locations));
- }
- let requestInfo = {'reportingPeriodSec': 10, 'wakeUpCacheQueueFull': true};
- try {
- geoLocationManager.on('cachedGnssLocationsChange', requestInfo, cachedLocationsCb);
- geoLocationManager.off('cachedGnssLocationsChange');
- } catch (err) {
- console.error("errCode:" + err.code + ",errMessage:" + err.message);
- }
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. |
示例
- import geoLocationManager from '@ohos.geoLocationManager';
- let gnssStatusCb = (satelliteStatusInfo) => {
- console.log('satelliteStatusChange: ' + JSON.stringify(satelliteStatusInfo));
- }
- try {
- geoLocationManager.on('satelliteStatusChange', gnssStatusCb);
- } catch (err) {
- console.error("errCode:" + err.code + ",errMessage:" + err.message);
- }
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. |
示例
- import geoLocationManager from '@ohos.geoLocationManager';
- let gnssStatusCb = (satelliteStatusInfo) => {
- console.log('satelliteStatusChange: ' + JSON.stringify(satelliteStatusInfo));
- }
- try {
- geoLocationManager.on('satelliteStatusChange', gnssStatusCb);
- geoLocationManager.off('satelliteStatusChange', gnssStatusCb);
- } catch (err) {
- console.error("errCode:" + err.code + ",errMessage:" + err.message);
- }
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. |
示例
- import geoLocationManager from '@ohos.geoLocationManager';
- let nmeaCb = (str) => {
- console.log('nmeaMessage: ' + JSON.stringify(str));
- }
- try {
- geoLocationManager.on('nmeaMessage', nmeaCb );
- } catch (err) {
- console.error("errCode:" + err.code + ",errMessage:" + err.message);
- }
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. |
示例
- import geoLocationManager from '@ohos.geoLocationManager';
- let nmeaCb = (str) => {
- console.log('nmeaMessage: ' + JSON.stringify(str));
- }
- try {
- geoLocationManager.on('nmeaMessage', nmeaCb);
- geoLocationManager.off('nmeaMessage', nmeaCb);
- } catch (err) {
- console.error("errCode:" + err.code + ",errMessage:" + err.message);
- }
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 | 是 | 圍欄的配置參數(shù)。 | |
want | 是 | 用于接收地理圍欄事件上報(進出圍欄)。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
3301000 | Location service is unavailable. |
3301100 | The location switch is off. |
3301600 | Failed to operate the geofence. |
示例
- import geoLocationManager from '@ohos.geoLocationManager';
- import wantAgent from '@ohos.app.ability.wantAgent';
- let wantAgentInfo = {
- wants: [
- {
- bundleName: "com.example.myapplication",
- abilityName: "EntryAbility",
- action: "action1"
- }
- ],
- operationType: wantAgent.OperationType.START_ABILITY,
- requestCode: 0,
- wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
- };
- wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => {
- let requestInfo = {'priority': 0x201, 'scenario': 0x301, "geofence": {"latitude": 121, "longitude": 26, "radius": 100, "expiration": 10000}};
- try {
- geoLocationManager.on('gnssFenceStatusChange', requestInfo, wantAgentObj);
- } catch (err) {
- console.error("errCode:" + err.code + ",errMessage:" + err.message);
- }
- });
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 | 是 | 圍欄的配置參數(shù)。 | |
want | 是 | 用于接收地理圍欄事件上報(進出圍欄)。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
3301000 | Location service is unavailable. |
3301100 | The location switch is off. |
3301600 | Failed to operate the geofence. |
示例
- import geoLocationManager from '@ohos.geoLocationManager';
- import wantAgent from '@ohos.app.ability.wantAgent';
- let wantAgentInfo = {
- wants: [
- {
- bundleName: "com.example.myapplication",
- abilityName: "EntryAbility",
- action: "action1",
- }
- ],
- operationType: wantAgent.OperationType.START_ABILITY,
- requestCode: 0,
- wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
- };
- wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => {
- let requestInfo = {'priority': 0x201, 'scenario': 0x301, "geofence": {"latitude": 121, "longitude": 26, "radius": 100, "expiration": 10000}};
- try {
- geoLocationManager.on('gnssFenceStatusChange', requestInfo, wantAgentObj);
- geoLocationManager.off('gnssFenceStatusChange', requestInfo, wantAgentObj);
- } catch (err) {
- console.error("errCode:" + err.code + ",errMessage:" + err.message);
- }
- });
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. |
示例
- import geoLocationManager from '@ohos.geoLocationManager';
- let callback = (code) => {
- console.log('countryCodeChange: ' + JSON.stringify(code));
- }
- try {
- geoLocationManager.on('countryCodeChange', callback);
- } catch (err) {
- console.error("errCode:" + err.code + ",errMessage:" + err.message);
- }
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. |
示例
- import geoLocationManager from '@ohos.geoLocationManager';
- let callback = (code) => {
- console.log('countryCodeChange: ' + JSON.stringify(code));
- }
- try {
- geoLocationManager.on('countryCodeChange', callback);
- geoLocationManager.off('countryCodeChange', callback);
- } catch (err) {
- console.error("errCode:" + err.code + ",errMessage:" + err.message);
- }
getCurrentLocation(request: CurrentLocationRequest, callback: AsyncCallback<Location>): void
獲取當前位置,使用callback回調異步返回結果。
需要權限:ohos.permission.APPROXIMATELY_LOCATION
系統(tǒng)能力:SystemCapability.Location.Location.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
request | 是 | 設置位置請求參數(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. |
示例
- import geoLocationManager from '@ohos.geoLocationManager';
- let requestInfo = {'priority': 0x203, 'scenario': 0x300,'maxAccuracy': 0};
- let locationChange = (err, location) => {
- if (err) {
- console.log('locationChanger: err=' + JSON.stringify(err));
- }
- if (location) {
- console.log('locationChanger: location=' + JSON.stringify(location));
- }
- };
- try {
- geoLocationManager.getCurrentLocation(requestInfo, locationChange);
- } catch (err) {
- console.error("errCode:" + err.code + ",errMessage:" + err.message);
- }
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. |
示例
- import geoLocationManager from '@ohos.geoLocationManager';
- let locationChange = (err, location) => {
- if (err) {
- console.log('locationChanger: err=' + JSON.stringify(err));
- }
- if (location) {
- console.log('locationChanger: location=' + JSON.stringify(location));
- }
- };
- try {
- geoLocationManager.getCurrentLocation(locationChange);
- } catch (err) {
- console.error("errCode:" + err.code + ",errMessage:" + err.message);
- }
getCurrentLocation(request?: CurrentLocationRequest): Promise<Location>
獲取當前位置,使用Promise方式異步返回結果。
需要權限:ohos.permission.APPROXIMATELY_LOCATION
系統(tǒng)能力:SystemCapability.Location.Location.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
request | 否 | 設置位置請求參數(shù)。 |
返回值:
錯誤碼:
以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
3301000 | Location service is unavailable. |
3301100 | The location switch is off. |
3301200 | Failed to obtain the geographical location. |
示例
- import geoLocationManager from '@ohos.geoLocationManager';
- let requestInfo = {'priority': 0x203, 'scenario': 0x300,'maxAccuracy': 0};
- try {
- geoLocationManager.getCurrentLocation(requestInfo).then((result) => {
- console.log('current location: ' + JSON.stringify(result));
- })
- .catch((error) => {
- console.log('promise, getCurrentLocation: error=' + JSON.stringify(error));
- });
- } catch (err) {
- console.error("errCode:" + err.code + ",errMessage:" + err.message);
- }
getLastLocation(): Location
獲取上一次位置。
需要權限:ohos.permission.APPROXIMATELY_LOCATION
系統(tǒng)能力:SystemCapability.Location.Location.Core
返回值:
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
Location | NA | 位置信息。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
3301000 | Location service is unavailable. |
3301100 | The location switch is off. |
3301200 | Failed to obtain the geographical location. |
示例
- import geoLocationManager from '@ohos.geoLocationManager';
- try {
- let location = geoLocationManager.getLastLocation();
- } catch (err) {
- console.error("errCode:" + err.code + ",errMessage:" + err.message);
- }
isLocationEnabled(): boolean
判斷位置服務是否已經(jīng)使能。
系統(tǒng)能力:SystemCapability.Location.Location.Core
返回值:
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
boolean | boolean | NA | 位置服務是否已經(jīng)使能。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
3301000 | Location service is unavailable. |
示例
- import geoLocationManager from '@ohos.geoLocationManager';
- try {
- let locationEnabled = geoLocationManager.isLocationEnabled();
- } catch (err) {
- console.error("errCode:" + err.code + ",errMessage:" + err.message);
- }
getAddressesFromLocation(request: ReverseGeoCodeRequest, callback: AsyncCallback<Array<GeoAddress>>): void
調用逆地理編碼服務,將坐標轉換為地理描述,使用callback回調異步返回結果。
系統(tǒng)能力:SystemCapability.Location.Location.Geocoder
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
request | 是 | 設置逆地理編碼請求的相關參數(shù)。 | |
callback | AsyncCallback<Array<GeoAddress>> | 是 | 接收逆地理編碼結果的回調函數(shù)。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
3301000 | Location service is unavailable. |
3301300 | Reverse geocoding query failed. |
示例
- import geoLocationManager from '@ohos.geoLocationManager';
- let reverseGeocodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1};
- try {
- geoLocationManager.getAddressesFromLocation(reverseGeocodeRequest, (err, data) => {
- if (err) {
- console.log('getAddressesFromLocation: err=' + JSON.stringify(err));
- }
- if (data) {
- console.log('getAddressesFromLocation: data=' + JSON.stringify(data));
- }
- });
- } catch (err) {
- console.error("errCode:" + err.code + ",errMessage:" + err.message);
- }
getAddressesFromLocation(request: ReverseGeoCodeRequest): Promise<Array<GeoAddress>>;
調用逆地理編碼服務,將坐標轉換為地理描述,使用Promise方式異步返回結果。
系統(tǒng)能力:SystemCapability.Location.Location.Geocoder
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
request | 是 | 設置逆地理編碼請求的相關參數(shù)。 |
返回值:
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
Promise<Array<GeoAddress>> | Array<GeoAddress> | NA | 返回地理描述信息。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
3301000 | Location service is unavailable. |
3301300 | Reverse geocoding query failed. |
示例
- import geoLocationManager from '@ohos.geoLocationManager';
- let reverseGeocodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1};
- try {
- geoLocationManager.getAddressesFromLocation(reverseGeocodeRequest).then((data) => {
- console.log('getAddressesFromLocation: ' + JSON.stringify(data));
- })
- .catch((error) => {
- console.log('promise, getAddressesFromLocation: error=' + JSON.stringify(error));
- });
- } catch (err) {
- console.error("errCode:" + err.code + ",errMessage:" + err.message);
- }
getAddressesFromLocationName(request: GeoCodeRequest, callback: AsyncCallback<Array<GeoAddress>>): void
調用地理編碼服務,將地理描述轉換為具體坐標,使用callback回調異步返回結果。
系統(tǒng)能力:SystemCapability.Location.Location.Geocoder
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
request | 是 | 設置地理編碼請求的相關參數(shù)。 | |
callback | AsyncCallback<Array<GeoAddress>> | 是 | 接收地理編碼結果的回調函數(shù)。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
3301000 | Location service is unavailable. |
3301400 | Geocoding query failed. |
示例
- import geoLocationManager from '@ohos.geoLocationManager';
- let geocodeRequest = {"description": "上海市浦東新區(qū)xx路xx號", "maxItems": 1};
- try {
- geoLocationManager.getAddressesFromLocationName(geocodeRequest, (err, data) => {
- if (err) {
- console.log('getAddressesFromLocationName: err=' + JSON.stringify(err));
- }
- if (data) {
- console.log('getAddressesFromLocationName: data=' + JSON.stringify(data));
- }
- });
- } catch (err) {
- console.error("errCode:" + err.code + ",errMessage:" + err.message);
- }
getAddressesFromLocationName(request: GeoCodeRequest): Promise<Array<GeoAddress>>
調用地理編碼服務,將地理描述轉換為具體坐標,使用Promise方式異步返回結果。
系統(tǒng)能力:SystemCapability.Location.Location.Geocoder
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
request | 是 | 設置地理編碼請求的相關參數(shù)。 |
返回值:
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
Promise<Array<GeoAddress>> | Array<GeoAddress> | NA | 返回地理編碼查詢結果。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
3301000 | Location service is unavailable. |
3301400 | Geocoding query failed. |
示例
- import geoLocationManager from '@ohos.geoLocationManager';
- let geocodeRequest = {"description": "上海市浦東新區(qū)xx路xx號", "maxItems": 1};
- try {
- geoLocationManager.getAddressesFromLocationName(geocodeRequest).then((result) => {
- console.log('getAddressesFromLocationName: ' + JSON.stringify(result));
- })
- .catch((error) => {
- console.log('promise, getAddressesFromLocationName: error=' + JSON.stringify(error));
- });
- } catch (err) {
- console.error("errCode:" + err.code + ",errMessage:" + err.message);
- }
isGeocoderAvailable(): boolean;
判斷(逆)地理編碼服務狀態(tài)。
系統(tǒng)能力:SystemCapability.Location.Location.Geocoder
返回值:
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
boolean | boolean | NA | 返回(逆)地理編碼服務是否可用。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
3301000 | Location service is unavailable. |
示例
- import geoLocationManager from '@ohos.geoLocationManager';
- try {
- let isAvailable = geoLocationManager.isGeocoderAvailable();
- } catch (err) {
- console.error("errCode:" + err.code + ",errMessage:" + err.message);
- }
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. |
示例
- import geoLocationManager from '@ohos.geoLocationManager';
- try {
- geoLocationManager.getCachedGnssLocationsSize((err, size) => {
- if (err) {
- console.log('getCachedGnssLocationsSize: err=' + JSON.stringify(err));
- }
- if (size) {
- console.log('getCachedGnssLocationsSize: size=' + JSON.stringify(size));
- }
- });
- } catch (err) {
- console.error("errCode:" + err.code + ",errMessage:" + err.message);
- }
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. |
示例
- import geoLocationManager from '@ohos.geoLocationManager';
- try {
- geoLocationManager.getCachedGnssLocationsSize().then((result) => {
- console.log('promise, getCachedGnssLocationsSize: ' + JSON.stringify(result));
- })
- .catch((error) => {
- console.log('promise, getCachedGnssLocationsSize: error=' + JSON.stringify(error));
- });
- } catch (err) {
- console.error("errCode:" + err.code + ",errMessage:" + err.message);
- }
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. |
示例
- import geoLocationManager from '@ohos.geoLocationManager';
- try {
- geoLocationManager.flushCachedGnssLocations((err, result) => {
- if (err) {
- console.log('flushCachedGnssLocations: err=' + JSON.stringify(err));
- }
- });
- } catch (err) {
- console.error("errCode:" + err.code + ",errMessage:" + err.message);
- }
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. |
示例
- import geoLocationManager from '@ohos.geoLocationManager';
- try {
- geoLocationManager.flushCachedGnssLocations().then((result) => {
- console.log('promise, flushCachedGnssLocations success');
- })
- .catch((error) => {
- console.log('promise, flushCachedGnssLocations: error=' + JSON.stringify(error));
- });
- } catch (err) {
- console.error("errCode:" + err.code + ",errMessage:" + err.message);
- }
sendCommand(command: LocationCommand, callback: AsyncCallback<void>): void;
給位置服務子系統(tǒng)的各個部件發(fā)送擴展命令。
系統(tǒng)能力:SystemCapability.Location.Location.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
command | 是 | 指定目標場景,和將要發(fā)送的命令(字符串)。 | |
callback | AsyncCallback<void> | 是 | 用來接收錯誤碼。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
3301000 | Location service is unavailable. |
示例
- import geoLocationManager from '@ohos.geoLocationManager';
- let requestInfo = {'scenario': 0x301, 'command': "command_1"};
- try {
- geoLocationManager.sendCommand(requestInfo, (err, result) => {
- if (err) {
- console.log('sendCommand: err=' + JSON.stringify(err));
- }
- });
- } catch (err) {
- console.error("errCode:" + err.code + ",errMessage:" + err.message);
- }
sendCommand(command: LocationCommand): Promise<void>;
給位置服務子系統(tǒng)的各個部件發(fā)送擴展命令。
系統(tǒng)能力:SystemCapability.Location.Location.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
command | 是 | 指定目標場景,和將要發(fā)送的命令(字符串)。 |
返回值:
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
Promise<void> | void | NA | 接收錯誤碼。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
3301000 | Location service is unavailable. |
示例
- import geoLocationManager from '@ohos.geoLocationManager';
- let requestInfo = {'scenario': 0x301, 'command': "command_1"};
- try {
- geoLocationManager.sendCommand(requestInfo).then((result) => {
- console.log('promise, sendCommand success');
- })
- .catch((error) => {
- console.log('promise, sendCommand: error=' + JSON.stringify(error));
- });
- } catch (err) {
- console.error("errCode:" + err.code + ",errMessage:" + err.message);
- }
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. |
示例
- import geoLocationManager from '@ohos.geoLocationManager';
- try {
- geoLocationManager.getCountryCode((err, result) => {
- if (err) {
- console.log('getCountryCode: err=' + JSON.stringify(err));
- }
- if (result) {
- console.log('getCountryCode: result=' + JSON.stringify(result));
- }
- });
- } catch (err) {
- console.error("errCode:" + err.code + ",errMessage:" + err.message);
- }
getCountryCode(): Promise<CountryCode>;
查詢當前的國家碼。
系統(tǒng)能力:SystemCapability.Location.Location.Core
返回值:
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
Promise<CountryCode> | NA | 用來接收國家碼。 |
錯誤碼:
以下錯誤碼的詳細介紹請參見位置服務子系統(tǒng)錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
3301000 | Location service is unavailable. |
3301500 | Failed to query the area information. |
示例
- import geoLocationManager from '@ohos.geoLocationManager';
- try {
- geoLocationManager.getCountryCode()
- .then((result) => {
- console.log('promise, getCountryCode: result=' + JSON.stringify(result));
- })
- .catch((error) => {
- console.log('promise, getCountryCode: error=' + JSON.stringify(error));
- });
- } catch (err) {
- console.error("errCode:" + err.code + ",errMessage:" + err.message);
- }
更多建議: