@ohos.geoLocationManager (Geolocation Manager)

The geoLocationManager module provides location services such as Global Navigation Satellite System (GNSS)-based positioning, network positioning, geofencing, as well as geocoding and reverse geocoding.

NOTE

The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.

Applying for Permissions

Before using basic location capabilities, check whether your application has been granted the permission to access the device location information. If not, your application needs to obtain the permission from the user as described below.

The system provides the following location permissions:

  • ohos.permission.LOCATION

  • ohos.permission.APPROXIMATELY_LOCATION

  • ohos.permission.LOCATION_IN_BACKGROUND

If your application needs to access the device location information, it must first apply for required permissions. Specifically speaking:

API versions earlier than 9: Apply for ohos.permission.LOCATION.

API version 9 and later: Apply for ohos.permission.APPROXIMATELY_LOCATION, or apply for ohos.permission.APPROXIMATELY_LOCATION and ohos.permission.LOCATION. Note that ohos.permission.LOCATION cannot be applied for separately.

API Version Location Permission Permission Application Result Location Accuracy
Earlier than 9 ohos.permission.LOCATION Success Location accurate to meters
9 and later ohos.permission.LOCATION Failure No location obtained
9 and later ohos.permission.APPROXIMATELY_LOCATION Success Location accurate to 5 kilometers
9 and later ohos.permission.APPROXIMATELY_LOCATION and ohos.permission.LOCATION Success Location accurate to meters

To access the device location information when running in the background, an application needs to request for the ohos.permission.LOCATION_IN_BACKGROUND permission or a continuous task of the background mode. In this way, the system continues to report device location information after your application moves to the background.

A user can grant the ohos.permission.LOCATION_IN_BACKGROUND permission for an application on the setting page. For details, see ohos.permission.LOCATION_IN_BACKGROUND.

For details about how to request for a continuous task, see Continuous Task.

You can declare the required permission in your application's configuration file. For details, see Requesting User Authorization.

Modules to Import

import geoLocationManager from '@ohos.geoLocationManager';

ReverseGeoCodeRequest

Defines a reverse geocoding request.

System capability: SystemCapability.Location.Location.Geocoder

Name Type Readable Writable Description
locale string Yes Yes Language used for the location description. zh indicates Chinese, and en indicates English.
latitude number Yes Yes Latitude information. A positive value indicates north latitude, and a negative value indicates south latitude. The value ranges from -90 to 90.
longitude number Yes Yes Longitude information. A positive value indicates east longitude , and a negative value indicates west longitude . The value ranges from -180 to 180.
maxItems number Yes Yes Maximum number of location records to be returned. The specified value must be greater than or equal to 0. A value smaller than 10 is recommended.

GeoCodeRequest

Defines a geocoding request.

System capability: SystemCapability.Location.Location.Geocoder

Name Type Readable Writable Description
locale string Yes Yes Language used for the location description. zh indicates Chinese, and en indicates English.
description string Yes Yes Location description, for example, No. xx, xx Road, Pudong New District, Shanghai.
maxItems number Yes Yes Maximum number of location records to be returned. The specified value must be greater than or equal to 0. A value smaller than 10 is recommended.
minLatitude number Yes Yes Minimum latitude. This parameter is used with minLongitude, maxLatitude, and maxLongitude to specify the latitude and longitude ranges. The value ranges from -90 to 90.
minLongitude number Yes Yes Minimum longitude. The value ranges from -180 to 180.
maxLatitude number Yes Yes Maximum latitude. The value ranges from -90 to 90.
maxLongitude number Yes Yes Maximum longitude. The value ranges from -180 to 180.

GeoAddress

Defines a geographic location.

System capability: SystemCapability.Location.Location.Geocoder

Name Type Readable Writable Description
latitude number Yes No Latitude information. A positive value indicates north latitude, and a negative value indicates south latitude. The value ranges from -90 to 90.
longitude number Yes No Longitude information. A positive value indicates east longitude , and a negative value indicates west longitude . The value ranges from -180 to 180.
locale string Yes No Language used for the location description. zh indicates Chinese, and en indicates English.
placeName string Yes No Landmark of the location.
countryCode string Yes No Country code.
countryName string Yes No Country name.
administrativeArea string Yes No Level-1 administrative region, which is generally is a province or state.
subAdministrativeArea string Yes No Level-2 administrative region, which is generally is a city.
locality string Yes No Locality information, which is usually a city.
subLocality string Yes No Sub-locality information, which is usually a district or county.
roadName string Yes No Road name.
subRoadName string Yes No Auxiliary road information.
premises string Yes No House information.
postalCode string Yes No Postal code.
phoneNumber string Yes No Phone number.
addressUrl string Yes No Website URL.
descriptions Array<string> Yes No Additional description. It contains cityCode (the array subscript is 0) and adminCode (the array subscript is 1), for example, ["025","320114001"].
descriptionsSize number Yes No Total number of additional descriptions. The specified value must be greater than or equal to 0. A value smaller than 10 is recommended.

LocationRequest

Defines a location request.

System capability: SystemCapability.Location.Location.Core

Name Type Readable Writable Description
priority LocationRequestPriority Yes Yes Priority of the location request. This parameter is effective only when scenario is set to UNSET. If this parameter and scenario are set to UNSET, the attempt to initiate a location request will fail. For details about the value range, see LocationRequestPriority.
scenario LocationRequestScenario Yes Yes Scenario of the location request. The priority parameter is effective only when this parameter is set to UNSET. If this parameter and priority are set to UNSET, the attempt to initiate a location request will fail. For details about the value range, see LocationRequestScenario.
timeInterval number Yes Yes Time interval at which location information is reported, in seconds. The specified value must be greater than or equal to 0. The default value is 1.
distanceInterval number Yes Yes Distance interval at which location information is reported, in meters. The specified value must be greater than or equal to 0. The default value is 0.
maxAccuracy number Yes Yes Location accuracy, in meters. This parameter is valid only when the precise location function is enabled, and is invalid when the approximate location function is enabled. The specified value must be greater than or equal to 0. The default value is 0.

CurrentLocationRequest

Defines the current location request.

System capability: SystemCapability.Location.Location.Core

Name Type Readable Writable Description
priority LocationRequestPriority Yes Yes Priority of the location request. This parameter is effective only when scenario is set to UNSET. If this parameter and scenario are set to UNSET, the attempt to initiate a location request will fail. For details about the value range, see LocationRequestPriority.
scenario LocationRequestScenario Yes Yes Scenario of the location request. The priority parameter is effective only when this parameter is set to UNSET. If this parameter and priority are set to UNSET, the attempt to initiate a location request will fail. For details about the value range, see LocationRequestScenario.
maxAccuracy number Yes Yes Location accuracy, in meters. This parameter is valid only when the precise location function is enabled, and is invalid when the approximate location function is enabled. The specified value must be greater than or equal to 0. The default value is 0.
timeoutMs number Yes Yes Timeout duration, in milliseconds. The minimum value is 1000. The specified value must be greater than or equal to 1000.

SatelliteStatusInfo

Defines the satellite status information.

System capability: SystemCapability.Location.Location.Gnss

Name Type Readable Writable Description
satellitesNumber number Yes No Number of satellites. The specified value must be greater than or equal to 0.
satelliteIds Array<number> Yes No Array of satellite IDs. The specified value must be greater than or equal to 0.
carrierToNoiseDensitys Array<number> Yes No Carrier-to-noise density ratio, that is, cn0. The specified value must be greater than 0.
altitudes Array<number> Yes No Satellite altitude angle information. The value ranges from -90 to 90, in degrees.
azimuths Array<number> Yes No Azimuth information. The value ranges from 0 to 360, in degrees.
carrierFrequencies Array<number> Yes No Carrier frequency, in Hz. The specified value must be greater than or equal to 0.

CachedGnssLocationsRequest

Defines a request for reporting cached GNSS locations.

System capability: SystemCapability.Location.Location.Gnss

Name Type Readable Writable Description
reportingPeriodSec number Yes Yes Interval for reporting the cached GNSS locations, in milliseconds. The specified value must be greater than 0.
wakeUpCacheQueueFull boolean Yes Yes true: reports the cached GNSS locations to the application when the cache queue is full.
false: discards the cached GNSS locations when the cache queue is full.

Geofence

Defines a GNSS geofence. Currently, only circular geofences are supported.

System capability: SystemCapability.Location.Location.Geofence

Name Type Readable Writable Description
latitude number Yes Yes Latitude information. The value ranges from -90 to 90.
longitude number Yes Yes Longitude information. The value ranges from -180 to 180.
radius number Yes Yes Radius of a circular geofence, in meters. The specified value must be greater than 0.
expiration number Yes Yes Expiration period of a geofence, in milliseconds. The specified value must be greater than 0.

GeofenceRequest

Defines a GNSS geofencing request.

System capability: SystemCapability.Location.Location.Geofence

Name Type Readable Writable Description
scenario LocationRequestScenario Yes Yes Location scenario.
geofence Geofence Yes Yes Geofence information.

LocationCommand

Defines an extended command.

System capability: SystemCapability.Location.Location.Core

Name Type Readable Writable Description
scenario LocationRequestScenario Yes Yes Location scenario.
command string Yes Yes Extended command, in the string format.

Location

Defines a location.

System capability: SystemCapability.Location.Location.Core

Name Type Readable Writable Description
latitude number Yes No Latitude information. A positive value indicates north latitude, and a negative value indicates south latitude. The value ranges from -90 to 90.
longitude number Yes No Longitude information. A positive value indicates east longitude , and a negative value indicates west longitude . The value ranges from -180 to 180.
altitude number Yes No Location altitude, in meters.
accuracy number Yes No Location accuracy, in meters.
speed number Yes No Speed, in m/s.
timeStamp number Yes No Location timestamp in the UTC format.
direction number Yes No Direction information. The value ranges from 0 to 360, in degrees.
timeSinceBoot number Yes No Location timestamp since boot.
additions Array<string> Yes No Additional description.
additionSize number Yes No Number of additional descriptions. The specified value must be greater than or equal to 0.

CountryCode

Defines the country code information.

System capability: SystemCapability.Location.Location.Core

Name Type Readable Writable Description
country string Yes No Country code.
type CountryCodeType Yes No Country code source.

LocationRequestPriority

Sets the priority of the location request.

System capability: SystemCapability.Location.Location.Core

Name Value Description
UNSET 0x200 Priority unspecified.
If this option is used, LocationRequestPriority is invalid.
ACCURACY 0x201 Location accuracy.
This policy mainly uses the GNSS positioning technology. In an open area, the technology can achieve the meter-level location accuracy, depending on the hardware performance of the device. However, in a shielded environment, the location accuracy may significantly decrease.
LOW_POWER 0x202 Power efficiency.
This policy mainly uses the base station positioning, WLAN positioning, and Bluetooth positioning technologies to obtain device location in both indoor and outdoor scenarios. The location accuracy depends on the distribution of surrounding base stations, visible WLANs, and Bluetooth devices and therefore may fluctuate greatly. This policy is recommended and can reduce power consumption when your application does not require high location accuracy or when base stations, visible WLANs, and Bluetooth devices are densely distributed.
FIRST_FIX 0x203 Fast location preferred. Use this option if you want to obtain a location as fast as possible.
This policy uses the GNSS positioning, base station positioning, WLAN positioning, and Bluetooth positioning technologies simultaneously to obtain the device location in both the indoor and outdoor scenarios. When all positioning technologies provide a location result, the system provides the most accurate location result for your application. It can lead to significant hardware resource consumption and power consumption.

LocationRequestScenario

Sets the scenario of the location request.

System capability: SystemCapability.Location.Location.Core

Name Value Description
UNSET 0x300 Scenario unspecified.
If this option is used, LocationRequestScenario is invalid.
NAVIGATION 0x301 Navigation.
This option is applicable when your application needs to obtain the real-time location of a mobile device outdoors, such as navigation for driving or walking.
In this scenario, GNSS positioning is used to provide location services to ensure the optimal location accuracy of the system.
The location result is reported at a minimum interval of 1 second by default.
TRAJECTORY_TRACKING 0x302 Trajectory tracking.
This option is applicable when your application needs to record user trajectories, for example, the track recording function of sports applications. In this scenario, the GNSS positioning technology is mainly used to ensure the location accuracy.
The location result is reported at a minimum interval of 1 second by default.
CAR_HAILING 0x303 Ride hailing.
This option is applicable when your application needs to obtain the current location of a user who is hailing a taxi.
The location result is reported at a minimum interval of 1 second by default.
DAILY_LIFE_SERVICE 0x304 Daily life services.
This option is applicable when your application only needs the approximate user location for recommendations and push notifications in scenarios such as when the user is browsing news, shopping online, and ordering food.
The location result is reported at a minimum interval of 1 second by default.
NO_POWER 0x305 Power efficiency. Your application does not proactively start the location service. When responding to another application requesting the same location service, the system marks a copy of the location result to your application. In this way, your application will not consume extra power for obtaining the user location.

CountryCodeType

Defines the country code source type.

System capability: SystemCapability.Location.Location.Core

Name Value Description
COUNTRY_CODE_FROM_LOCALE 1 Country code obtained from the language configuration of the globalization module.
COUNTRY_CODE_FROM_SIM 2 Country code obtained from the SIM card.
COUNTRY_CODE_FROM_LOCATION 3 Country code obtained using the reverse geocoding function based on the user's location information.
COUNTRY_CODE_FROM_NETWORK 4 Country code obtained from the cellular network registration information.

geoLocationManager.on('locationChange')

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

Subscribes to location change events with a location request initiated.

Permission required: ohos.permission.APPROXIMATELY_LOCATION

System capability: SystemCapability.Location.Location.Core

Parameters

Name Type Mandatory Description
type string Yes Event type. The value locationChange indicates a location change.
request LocationRequest Yes Location request.
callback Callback<Location> Yes Callback used to receive location change events.

Error codes

For details about the error codes, see [Location Error Codes]](errorcode-geoLocationManager.md).

ID Error Message
3301000 Location service is unavailable.
3301100 The location switch is off.
3301200 Failed to obtain the geographical location.

Example

import geoLocationManager from '@ohos.geoLocationManager';
import BusinessError from "@ohos.base";
let requestInfo:geoLocationManager.LocationRequest = {'priority': geoLocationManager.LocationRequestPriority.FIRST_FIX, 'scenario': geoLocationManager.LocationRequestScenario.UNSET, 'timeInterval': 1, 'distanceInterval': 0, 'maxAccuracy': 0};
let locationChange = (location:geoLocationManager.Location):void => {
    console.log('locationChanger: data: ' + JSON.stringify(location));
};
try {
    geoLocationManager.on('locationChange', requestInfo, locationChange);
} catch (err) {
    console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
}

geoLocationManager.off('locationChange')

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

Unsubscribes from location change events with the corresponding location request deleted.

Permission required: ohos.permission.APPROXIMATELY_LOCATION

System capability: SystemCapability.Location.Location.Core

Parameters

Name Type Mandatory Description
type string Yes Event type. The value locationChange indicates a location change.
callback Callback<Location> No Callback to unregister. If this parameter is not specified, all callbacks of the specified event type are unregistered.

Error codes

For details about the error codes, see [Location Error Codes]](errorcode-geoLocationManager.md).

ID Error Message
3301000 Location service is unavailable.
3301100 The location switch is off.
3301200 Failed to obtain the geographical location.

Example

import geoLocationManager from '@ohos.geoLocationManager';
import BusinessError from "@ohos.base";
let requestInfo:geoLocationManager.LocationRequest = {'priority': geoLocationManager.LocationRequestPriority.FIRST_FIX, 'scenario': geoLocationManager.LocationRequestScenario.UNSET, 'timeInterval': 1, 'distanceInterval': 0, 'maxAccuracy': 0};
let locationChange = (location:geoLocationManager.Location):void => {
  console.log('locationChanger: data: ' + JSON.stringify(location));
};
try {
    geoLocationManager.on('locationChange', requestInfo, locationChange);
    geoLocationManager.off('locationChange', locationChange);
} catch (err) {
    console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
}

geoLocationManager.on('locationEnabledChange')

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

Subscribes to location service status change events.

System capability: SystemCapability.Location.Location.Core

Parameters

Name Type Mandatory Description
type string Yes Event type. The value locationEnabledChange indicates a location service status change.
callback Callback<boolean> Yes Callback used to receive location service status change events.

Error codes

For details about the error codes, see [Location Error Codes]](errorcode-geoLocationManager.md).

ID Error Message
3301000 Location service is unavailable.

Example

import geoLocationManager from '@ohos.geoLocationManager';
import BusinessError from "@ohos.base";
let locationEnabledChange = (state:boolean):void => {
    console.log('locationEnabledChange: ' + JSON.stringify(state));
}
try {
    geoLocationManager.on('locationEnabledChange', locationEnabledChange);
} catch (err) {
    console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
}

geoLocationManager.off('locationEnabledChange')

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

Unsubscribes from location service status change events.

System capability: SystemCapability.Location.Location.Core

Parameters

Name Type Mandatory Description
type string Yes Event type. The value locationEnabledChange indicates a location service status change.
callback Callback<boolean> No Callback to unregister. If this parameter is not specified, all callbacks of the specified event type are unregistered.

Error codes

For details about the error codes, see [Location Error Codes]](errorcode-geoLocationManager.md).

ID Error Message
3301000 Location service is unavailable.

Example

import geoLocationManager from '@ohos.geoLocationManager';
import BusinessError from "@ohos.base";
let locationEnabledChange = (state:boolean):void => {
    console.log('locationEnabledChange: state: ' + JSON.stringify(state));
}
try {
    geoLocationManager.on('locationEnabledChange', locationEnabledChange);
    geoLocationManager.off('locationEnabledChange', locationEnabledChange);
} catch (err) {
    console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
}

geoLocationManager.on('cachedGnssLocationsChange')

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

Subscribes to cached GNSS location reports. This API is supported only by certain GNSS chip models. If the required chip model is not available, error code 801 (Capability not supported) will be reported.

Permission required: ohos.permission.APPROXIMATELY_LOCATION

System capability: SystemCapability.Location.Location.Gnss

Parameters

Name Type Mandatory Description
type string Yes Event type. The value cachedGnssLocationsChange indicates reporting of cached GNSS locations.
request CachedGnssLocationsRequest Yes Request for reporting cached GNSS location.
callback Callback<Array<Location>> Yes Callback used to receive cached GNSS locations.

Error codes

For details about the error codes, see [Location Error Codes]](errorcode-geoLocationManager.md).

ID Error Message
3301000 Location service is unavailable.
3301100 The location switch is off.
3301200 Failed to obtain the geographical location.

Example

import geoLocationManager from '@ohos.geoLocationManager';
import BusinessError from "@ohos.base";
let cachedLocationsCb = (locations:Array<geoLocationManager.Location>):void => {
    console.log('cachedGnssLocationsChange: locations: ' + JSON.stringify(locations));
}
let requestInfo:geoLocationManager.CachedGnssLocationsRequest = {'reportingPeriodSec': 10, 'wakeUpCacheQueueFull': true};
try {
    geoLocationManager.on('cachedGnssLocationsChange', requestInfo, cachedLocationsCb);
} catch (err) {
    console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
}

geoLocationManager.off('cachedGnssLocationsChange')

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

Unsubscribes from cached GNSS location reports. This API is supported only by certain GNSS chip models. If the required chip model is not available, error code 801 (Capability not supported) will be reported.

Permission required: ohos.permission.APPROXIMATELY_LOCATION

System capability: SystemCapability.Location.Location.Gnss

Parameters

Name Type Mandatory Description
type string Yes Event type. The value cachedGnssLocationsChange indicates reporting of cached GNSS locations.
callback Callback<Array<Location>> No Callback to unregister. If this parameter is not specified, all callbacks of the specified event type are unregistered.

Error codes

For details about the error codes, see [Location Error Codes]](errorcode-geoLocationManager.md).

ID Error Message
3301000 Location service is unavailable.
3301100 The location switch is off.
3301200 Failed to obtain the geographical location.

Example

import geoLocationManager from '@ohos.geoLocationManager';
import BusinessError from "@ohos.base";
let cachedLocationsCb = (locations:Array<geoLocationManager.Location>):void => {
    console.log('cachedGnssLocationsChange: locations: ' + JSON.stringify(locations));
}
let requestInfo:geoLocationManager.CachedGnssLocationsRequest = {'reportingPeriodSec': 10, 'wakeUpCacheQueueFull': true};
try {
    geoLocationManager.on('cachedGnssLocationsChange', requestInfo, cachedLocationsCb);
    geoLocationManager.off('cachedGnssLocationsChange');
} catch (err) {
    console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
}

geoLocationManager.on('satelliteStatusChange')

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

Subscribes to GNSS satellite status change events.

Permission required: ohos.permission.APPROXIMATELY_LOCATION

System capability: SystemCapability.Location.Location.Gnss

Parameters

Name Type Mandatory Description
type string Yes Event type. The value satelliteStatusChange indicates a GNSS satellite status change.
callback Callback<SatelliteStatusInfo> Yes Callback used to receive GNSS satellite status change events.

Error codes

For details about the error codes, see [Location Error Codes]](errorcode-geoLocationManager.md).

ID Error Message
3301000 Location service is unavailable.
3301100 The location switch is off.

Example

import geoLocationManager from '@ohos.geoLocationManager';
import BusinessError from "@ohos.base";
let gnssStatusCb = (satelliteStatusInfo:geoLocationManager.SatelliteStatusInfo):void => {
    console.log('satelliteStatusChange: ' + JSON.stringify(satelliteStatusInfo));
}

try {
    geoLocationManager.on('satelliteStatusChange', gnssStatusCb);
} catch (err) {
    console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
}

geoLocationManager.off('satelliteStatusChange')

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

Unsubscribes from GNSS satellite status change events.

Permission required: ohos.permission.APPROXIMATELY_LOCATION

System capability: SystemCapability.Location.Location.Gnss

Parameters

Name Type Mandatory Description
type string Yes Event type. The value satelliteStatusChange indicates a GNSS satellite status change.
callback Callback<SatelliteStatusInfo> No Callback to unregister. If this parameter is not specified, all callbacks of the specified event type are unregistered.

Error codes

For details about the error codes, see [Location Error Codes]](errorcode-geoLocationManager.md).

ID Error Message
3301000 Location service is unavailable.
3301100 The location switch is off.

Example

import geoLocationManager from '@ohos.geoLocationManager';
import BusinessError from "@ohos.base";
let gnssStatusCb = (satelliteStatusInfo:geoLocationManager.SatelliteStatusInfo):void => {
    console.log('satelliteStatusChange: ' + JSON.stringify(satelliteStatusInfo));
}
try {
    geoLocationManager.on('satelliteStatusChange', gnssStatusCb);
    geoLocationManager.off('satelliteStatusChange', gnssStatusCb);
} catch (err) {
    console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
}

geoLocationManager.on('nmeaMessage')

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

Subscribes to GNSS NMEA message change events.

Required permissions: ohos.permission.LOCATION and ohos.permission.APPROXIMATELY_LOCATION

System capability: SystemCapability.Location.Location.Gnss

Parameters

Name Type Mandatory Description
type string Yes Event type. The value nmeaMessage indicates a GNSS NMEA message change.
callback Callback<string> Yes Callback used to receive GNSS NMEA message change events.

Error codes

For details about the error codes, see [Location Error Codes]](errorcode-geoLocationManager.md).

ID Error Message
3301000 Location service is unavailable.
3301100 The location switch is off.

Example

import geoLocationManager from '@ohos.geoLocationManager';
import BusinessError from "@ohos.base";
let nmeaCb = (str:string):void => {
    console.log('nmeaMessage: ' + JSON.stringify(str));
}

try {
    geoLocationManager.on('nmeaMessage', nmeaCb );
} catch (err) {
    console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
}

geoLocationManager.off('nmeaMessage')

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

Unsubscribes from GNSS NMEA message change events.

Required permissions: ohos.permission.LOCATION and ohos.permission.APPROXIMATELY_LOCATION

System capability: SystemCapability.Location.Location.Gnss

Parameters

Name Type Mandatory Description
type string Yes Event type. The value nmeaMessage indicates a GNSS NMEA message change.
callback Callback<string> No Callback to unregister. If this parameter is not specified, all callbacks of the specified event type are unregistered.

Error codes

For details about the error codes, see [Location Error Codes]](errorcode-geoLocationManager.md).

ID Error Message
3301000 Location service is unavailable.
3301100 The location switch is off.

Example

import geoLocationManager from '@ohos.geoLocationManager';
import BusinessError from "@ohos.base";
let nmeaCb = (str:string):void => {
    console.log('nmeaMessage: ' + JSON.stringify(str));
}

try {
    geoLocationManager.on('nmeaMessage', nmeaCb);
    geoLocationManager.off('nmeaMessage', nmeaCb);
} catch (err) {
    console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
}

geoLocationManager.on('gnssFenceStatusChange')

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

Subscribes to status change events of the specified geofence. This API is supported only by certain GNSS chip models. If the required chip model is not available, error code 801 (Capability not supported) will be reported.

Permission required: ohos.permission.APPROXIMATELY_LOCATION

System capability: SystemCapability.Location.Location.Geofence

Parameters

Name Type Mandatory Description
type string Yes Event type. The value gnssFenceStatusChange indicates a geofence status change.
request GeofenceRequest Yes Geofencing request.
want WantAgent Yes WantAgent used to receive geofence (entrance or exit) events.

Error codes

For details about the error codes, see [Location Error Codes]](errorcode-geoLocationManager.md).

ID Error Message
3301000 Location service is unavailable.
3301100 The location switch is off.
3301600 Failed to operate the geofence.

Example

import geoLocationManager from '@ohos.geoLocationManager';
import wantAgent from '@ohos.app.ability.wantAgent';
import BusinessError from "@ohos.base";

let wantAgentInfo:wantAgent.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:geoLocationManager.GeofenceRequest = {'scenario': 0x301, "geofence": {"latitude": 121, "longitude": 26, "radius": 100, "expiration": 10000}};
  try {
      geoLocationManager.on('gnssFenceStatusChange', requestInfo, wantAgentObj);
  } catch (err) {
      console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
  }
});

geoLocationManager.off('gnssFenceStatusChange')

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

Unsubscribes from status change events of the specified geofence. This API is supported only by certain GNSS chip models. If the required chip model is not available, error code 801 (Capability not supported) will be reported.

Permission required: ohos.permission.APPROXIMATELY_LOCATION

System capability: SystemCapability.Location.Location.Geofence

Parameters

Name Type Mandatory Description
type string Yes Event type. The value gnssFenceStatusChange indicates a geofence status change.
request GeofenceRequest Yes Geofencing request.
want WantAgent Yes WantAgent used to receive geofence (entrance or exit) events.

Error codes

For details about the error codes, see [Location Error Codes]](errorcode-geoLocationManager.md).

ID Error Message
3301000 Location service is unavailable.
3301100 The location switch is off.
3301600 Failed to operate the geofence.

Example

import geoLocationManager from '@ohos.geoLocationManager';
import wantAgent from '@ohos.app.ability.wantAgent';
import BusinessError from "@ohos.base";

let wantAgentInfo:wantAgent.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:geoLocationManager.GeofenceRequest = {'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 as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
  }
});

geoLocationManager.on('countryCodeChange')

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

Subscribes to country code change events.

System capability: SystemCapability.Location.Location.Core

Parameters

Name Type Mandatory Description
type string Yes Event type. The value countryCodeChange indicates a country code change.
callback Callback<CountryCode> Yes Callback used to receive country code change events.

Error codes

For details about the error codes, see [Location Error Codes]](errorcode-geoLocationManager.md).

ID Error Message
3301000 Location service is unavailable.
3301500 Failed to query the area information.

Example

import geoLocationManager from '@ohos.geoLocationManager';
import BusinessError from "@ohos.base";
let callback = (code:geoLocationManager.CountryCode):void => {
    console.log('countryCodeChange: ' + JSON.stringify(code));
}

try {
    geoLocationManager.on('countryCodeChange', callback);
} catch (err) {
    console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
}

geoLocationManager.off('countryCodeChange')

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

Unsubscribes from country code change events.

System capability: SystemCapability.Location.Location.Core

Parameters

Name Type Mandatory Description
type string Yes Event type. The value countryCodeChange indicates a country code change.
callback Callback<CountryCode> No Callback to unregister. If this parameter is not specified, all callbacks of the specified event type are unregistered.

Error codes

For details about the error codes, see [Location Error Codes]](errorcode-geoLocationManager.md).

ID Error Message
3301000 Location service is unavailable.
3301500 Failed to query the area information.

Example

import geoLocationManager from '@ohos.geoLocationManager';
import BusinessError from "@ohos.base";
let callback = (code:geoLocationManager.CountryCode):void => {
    console.log('countryCodeChange: ' + JSON.stringify(code));
}

try {
    geoLocationManager.on('countryCodeChange', callback);
    geoLocationManager.off('countryCodeChange', callback);
} catch (err) {
    console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
}

geoLocationManager.getCurrentLocation

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

Obtains the current location. This API uses an asynchronous callback to return the result.

Permission required: ohos.permission.APPROXIMATELY_LOCATION

System capability: SystemCapability.Location.Location.Core

Parameters

Name Type Mandatory Description
request CurrentLocationRequest Yes Location request.
callback AsyncCallback<Location> Yes Callback used to receive the current location.

Error codes

For details about the error codes, see [Location Error Codes]](errorcode-geoLocationManager.md).

ID Error Message
3301000 Location service is unavailable.
3301100 The location switch is off.
3301200 Failed to obtain the geographical location.

Example

import geoLocationManager from '@ohos.geoLocationManager';
import BusinessError from "@ohos.base";
let requestInfo:geoLocationManager.CurrentLocationRequest = {'priority': geoLocationManager.LocationRequestPriority.FIRST_FIX, 'scenario': geoLocationManager.LocationRequestScenario.UNSET,'maxAccuracy': 0};
let locationChange = (err:BusinessError.BusinessError, location:geoLocationManager.Location):void => {
    if (err) {
        console.error('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 as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
}

geoLocationManager.getCurrentLocation

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

Obtains the current location. This API uses an asynchronous callback to return the result.

Permission required: ohos.permission.APPROXIMATELY_LOCATION

System capability: SystemCapability.Location.Location.Core

Parameters

Name Type Mandatory Description
callback AsyncCallback<Location> Yes Callback used to receive the current location.

Error codes

For details about the error codes, see [Location Error Codes]](errorcode-geoLocationManager.md).

ID Error Message
3301000 Location service is unavailable.
3301100 The location switch is off.
3301200 Failed to obtain the geographical location.

Example

import geoLocationManager from '@ohos.geoLocationManager';
import BusinessError from "@ohos.base";
let locationChange = (err:BusinessError.BusinessError, location:geoLocationManager.Location) => {
    if (err) {
        console.error('locationChanger: err=' + JSON.stringify(err));
    }
    if (location) {
        console.log('locationChanger: location=' + JSON.stringify(location));
    }
};

try {
    geoLocationManager.getCurrentLocation(locationChange);
} catch (err) {
    console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
}

geoLocationManager.getCurrentLocation

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

Obtains the current location. This API uses a promise to return the result.

Permission required: ohos.permission.APPROXIMATELY_LOCATION

System capability: SystemCapability.Location.Location.Core

Parameters

Name Type Mandatory Description
request CurrentLocationRequest No Location request.

Return value

Type Description
Location Promise used to return the current location.

Error codes

For details about the error codes, see [Location Error Codes]](errorcode-geoLocationManager.md).

ID Error Message
3301000 Location service is unavailable.
3301100 The location switch is off.
3301200 Failed to obtain the geographical location.

Example

import geoLocationManager from '@ohos.geoLocationManager';
import BusinessError from "@ohos.base";
let requestInfo:geoLocationManager.CurrentLocationRequest = {'priority': geoLocationManager.LocationRequestPriority.FIRST_FIX, 'scenario': geoLocationManager.LocationRequestScenario.UNSET,'maxAccuracy': 0};
try {
    geoLocationManager.getCurrentLocation(requestInfo).then((result) => {
        console.log('current location: ' + JSON.stringify(result));
    })  
    .catch((error:number) => {
        console.error('promise, getCurrentLocation: error=' + JSON.stringify(error));
    });
} catch (err) {
    console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
}

geoLocationManager.getLastLocation

getLastLocation(): Location

Obtains the last location.

Permission required: ohos.permission.APPROXIMATELY_LOCATION

System capability: SystemCapability.Location.Location.Core

Return value

Type Description
Location Location information.

Error codes

For details about the error codes, see [Location Error Codes]](errorcode-geoLocationManager.md).

ID Error Message
3301000 Location service is unavailable.
3301100 The location switch is off.
3301200 Failed to obtain the geographical location.

Example

import geoLocationManager from '@ohos.geoLocationManager';
import BusinessError from "@ohos.base";
try {
    let location = geoLocationManager.getLastLocation();
} catch (err) {
    console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
}

geoLocationManager.isLocationEnabled

isLocationEnabled(): boolean

Checks whether the location service is enabled.

System capability: SystemCapability.Location.Location.Core

Return value

Type Description
boolean Result indicating whether the location service is enabled.

Error codes

For details about the error codes, see [Location Error Codes]](errorcode-geoLocationManager.md).

ID Error Message
3301000 Location service is unavailable.

Example

import geoLocationManager from '@ohos.geoLocationManager';
import BusinessError from "@ohos.base";
try {
    let locationEnabled = geoLocationManager.isLocationEnabled();
} catch (err) {
    console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
}

geoLocationManager.getAddressesFromLocation

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

Converts coordinates into geographic description through reverse geocoding. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Location.Location.Geocoder

Parameters

Name Type Mandatory Description
request ReverseGeoCodeRequest Yes Reverse geocoding request.
callback AsyncCallback<Array<GeoAddress>> Yes Callback used to receive the reverse geocoding result.

Error codes

For details about the error codes, see [Location Error Codes]](errorcode-geoLocationManager.md).

ID Error Message
3301000 Location service is unavailable.
3301300 Reverse geocoding query failed.

Example

import geoLocationManager from '@ohos.geoLocationManager';
import BusinessError from "@ohos.base";
let reverseGeocodeRequest:geoLocationManager.ReverseGeoCodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1};
try {
    geoLocationManager.getAddressesFromLocation(reverseGeocodeRequest, (err, data) => {
        if (err) {
            console.error('getAddressesFromLocation: err=' + JSON.stringify(err));
        }
        if (data) {
            console.log('getAddressesFromLocation: data=' + JSON.stringify(data));
        }
    });
} catch (err) {
    console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
}

geoLocationManager.getAddressesFromLocation

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

Converts coordinates into geographic description through reverse geocoding. This API uses a promise to return the result.

System capability: SystemCapability.Location.Location.Geocoder

Parameters

Name Type Mandatory Description
request ReverseGeoCodeRequest Yes Reverse geocoding request.

Return value

Type Description
Array<GeoAddress> Promise used to return the reverse geocoding result.

Error codes

For details about the error codes, see [Location Error Codes]](errorcode-geoLocationManager.md).

ID Error Message
3301000 Location service is unavailable.
3301300 Reverse geocoding query failed.

Example

import geoLocationManager from '@ohos.geoLocationManager';
import BusinessError from "@ohos.base";
let reverseGeocodeRequest:geoLocationManager.ReverseGeoCodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1};
try {
    geoLocationManager.getAddressesFromLocation(reverseGeocodeRequest).then((data) => {
        console.log('getAddressesFromLocation: ' + JSON.stringify(data));
    })
    .catch((error:number) => {
        console.error('promise, getAddressesFromLocation: error=' + JSON.stringify(error));
    });
} catch (err) {
    console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
}

geoLocationManager.getAddressesFromLocationName

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

Converts geographic description into coordinates through geocoding. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.Location.Location.Geocoder

Parameters

Name Type Mandatory Description
request GeoCodeRequest Yes Geocoding request.
callback AsyncCallback<Array<GeoAddress>> Yes Callback used to receive the geocoding result.

Error codes

For details about the error codes, see [Location Error Codes]](errorcode-geoLocationManager.md).

ID Error Message
3301000 Location service is unavailable.
3301400 Geocoding query failed.

Example

import geoLocationManager from '@ohos.geoLocationManager';
import BusinessError from "@ohos.base";
let geocodeRequest:geoLocationManager.GeoCodeRequest = {"description": "No. xx, xx Road, Pudong District, Shanghai", "maxItems": 1};
try {
    geoLocationManager.getAddressesFromLocationName(geocodeRequest, (err, data) => {
        if (err) {
            console.error('getAddressesFromLocationName: err=' + JSON.stringify(err));
        }
        if (data) {
            console.log('getAddressesFromLocationName: data=' + JSON.stringify(data));
        }
    });
} catch (err) {
    console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
}

geoLocationManager.getAddressesFromLocationName

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

Converts geographic description into coordinates through geocoding. This API uses a promise to return the result.

System capability: SystemCapability.Location.Location.Geocoder

Parameters

Name Type Mandatory Description
request GeoCodeRequest Yes Geocoding request.

Return value

Type Description
Array<GeoAddress> Promise used to return the geocoding result.

Error codes

For details about the error codes, see [Location Error Codes]](errorcode-geoLocationManager.md).

ID Error Message
3301000 Location service is unavailable.
3301400 Geocoding query failed.

Example

import geoLocationManager from '@ohos.geoLocationManager';
import BusinessError from "@ohos.base";
let geocodeRequest:geoLocationManager.GeoCodeRequest = {"description": "No. xx, xx Road, Pudong District, Shanghai", "maxItems": 1};
try {
    geoLocationManager.getAddressesFromLocationName(geocodeRequest).then((result) => {
        console.log('getAddressesFromLocationName: ' + JSON.stringify(result));
    })
    .catch((error:number) => {
        console.error('promise, getAddressesFromLocationName: error=' + JSON.stringify(error));
    });
} catch (err) {
    console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
}

geoLocationManager.isGeocoderAvailable

isGeocoderAvailable(): boolean;

Obtains the (reverse) geocoding service status.

System capability: SystemCapability.Location.Location.Geocoder

Return value

Type Description
boolean Result indicating whether the (reverse) geocoding service is available.

Error codes

For details about the error codes, see [Location Error Codes]](errorcode-geoLocationManager.md).

ID Error Message
3301000 Location service is unavailable.

Example

import geoLocationManager from '@ohos.geoLocationManager';
import BusinessError from "@ohos.base";
try {
    let isAvailable = geoLocationManager.isGeocoderAvailable();
} catch (err) {
    console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
}

geoLocationManager.getCachedGnssLocationsSize

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

Obtains the number of cached GNSS locations. This API is supported only by certain GNSS chip models. If the required chip model is not available, error code 801 (Capability not supported) will be reported.

Permission required: ohos.permission.APPROXIMATELY_LOCATION

System capability: SystemCapability.Location.Location.Gnss

Parameters

Name Type Mandatory Description
callback AsyncCallback<number> Yes Callback used to receive the number of cached GNSS locations.

Error codes

For details about the error codes, see [Location Error Codes]](errorcode-geoLocationManager.md).

ID Error Message
3301000 Location service is unavailable.
3301100 The location switch is off.

Example

import geoLocationManager from '@ohos.geoLocationManager';
import BusinessError from "@ohos.base";
try {
    geoLocationManager.getCachedGnssLocationsSize((err, size) => {
        if (err) {
            console.error('getCachedGnssLocationsSize: err=' + JSON.stringify(err));
        }
        if (size) {
            console.log('getCachedGnssLocationsSize: size=' + JSON.stringify(size));
        }
    });
} catch (err) {
    console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
}

geoLocationManager.getCachedGnssLocationsSize

getCachedGnssLocationsSize(): Promise<number>;

Obtains the number of cached GNSS locations. This API is supported only by certain GNSS chip models. If the required chip model is not available, error code 801 (Capability not supported) will be reported.

Permission required: ohos.permission.APPROXIMATELY_LOCATION

System capability: SystemCapability.Location.Location.Gnss

Return value

Type Description
number Promise used to return the number of cached GNSS locations.

Error codes

For details about the error codes, see [Location Error Codes]](errorcode-geoLocationManager.md).

ID Error Message
3301000 Location service is unavailable.
3301100 The location switch is off.

Example

import geoLocationManager from '@ohos.geoLocationManager';
import BusinessError from "@ohos.base";
try {
    geoLocationManager.getCachedGnssLocationsSize().then((result) => {
        console.log('promise, getCachedGnssLocationsSize: ' + JSON.stringify(result));
    }) 
    .catch((error:number) => {
        console.error('promise, getCachedGnssLocationsSize: error=' + JSON.stringify(error));
    });
} catch (err) {
    console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
}

geoLocationManager.flushCachedGnssLocations

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

Obtains all cached GNSS locations and clears the GNSS cache queue. This API is supported only by certain GNSS chip models. If the required chip model is not available, error code 801 (Capability not supported) will be reported.

Permission required: ohos.permission.APPROXIMATELY_LOCATION

System capability: SystemCapability.Location.Location.Gnss

Parameters

Name Type Mandatory Description
callback AsyncCallback<void> Yes Callback used to receive the error message.

Error codes

For details about the error codes, see [Location Error Codes]](errorcode-geoLocationManager.md).

ID Error Message
3301000 Location service is unavailable.
3301100 The location switch is off.
3301200 Failed to obtain the geographical location.

Example

import geoLocationManager from '@ohos.geoLocationManager';
import BusinessError from "@ohos.base";
try {
    geoLocationManager.flushCachedGnssLocations((err) => {
        if (err) {
            console.error('flushCachedGnssLocations: err=' + JSON.stringify(err));
        }
    });
} catch (err) {
    console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
}

geoLocationManager.flushCachedGnssLocations

flushCachedGnssLocations(): Promise<void>;

Obtains all cached GNSS locations and clears the GNSS cache queue. This API is supported only by certain GNSS chip models. If the required chip model is not available, error code 801 (Capability not supported) will be reported.

Permission required: ohos.permission.APPROXIMATELY_LOCATION

System capability: SystemCapability.Location.Location.Gnss

Return value

Type Description
void No value is returned.

Error codes

For details about the error codes, see [Location Error Codes]](errorcode-geoLocationManager.md).

ID Error Message
3301000 Location service is unavailable.
3301100 The location switch is off.
3301200 Failed to obtain the geographical location.

Example

import geoLocationManager from '@ohos.geoLocationManager';
import BusinessError from "@ohos.base";
try {
    geoLocationManager.flushCachedGnssLocations().then(() => {
        console.log('promise, flushCachedGnssLocations success');
    })
    .catch((error:number) => {
        console.error('promise, flushCachedGnssLocations: error=' + JSON.stringify(error));
    });
} catch (err) {
    console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
}

geoLocationManager.sendCommand

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

Sends an extended command to the location subsystem.

System capability: SystemCapability.Location.Location.Core

Parameters

Name Type Mandatory Description
command LocationCommand Yes Extended command (string) to be sent.
callback AsyncCallback<void> Yes Callback used to receive the error code.

Error codes

For details about the error codes, see [Location Error Codes]](errorcode-geoLocationManager.md).

ID Error Message
3301000 Location service is unavailable.

Example

import geoLocationManager from '@ohos.geoLocationManager';
import BusinessError from "@ohos.base";
let requestInfo:geoLocationManager.LocationCommand = {'scenario': 0x301, 'command': "command_1"};
try {
    geoLocationManager.sendCommand(requestInfo, (err) => {
        if (err) {
            console.error('sendCommand: err=' + JSON.stringify(err));
        }
    });
} catch (err) {
    console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
}

geoLocationManager.sendCommand

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

Sends an extended command to the location subsystem.

System capability: SystemCapability.Location.Location.Core

Parameters

Name Type Mandatory Description
command LocationCommand Yes Extended command (string) to be sent.

Return value

Type Description
void No value is returned.

Error codes

For details about the error codes, see [Location Error Codes]](errorcode-geoLocationManager.md).

ID Error Message
3301000 Location service is unavailable.

Example

import geoLocationManager from '@ohos.geoLocationManager';
import BusinessError from "@ohos.base";
let requestInfo:geoLocationManager.LocationCommand = {'scenario': 0x301, 'command': "command_1"};
try {
    geoLocationManager.sendCommand(requestInfo).then(() => {
        console.log('promise, sendCommand success');
    })  
    .catch((error:number) => {
        console.error('promise, sendCommand: error=' + JSON.stringify(error));
    });
} catch (err) {
    console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
}

geoLocationManager.getCountryCode

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

Obtains the current country code.

System capability: SystemCapability.Location.Location.Core

Parameters

Name Type Mandatory Description
callback AsyncCallback<CountryCode> Yes Callback used to receive the country code.

Error codes

For details about the error codes, see [Location Error Codes]](errorcode-geoLocationManager.md).

ID Error Message
3301000 Location service is unavailable.
3301500 Failed to query the area information.

Example

import geoLocationManager from '@ohos.geoLocationManager';
import BusinessError from "@ohos.base";
try {
    geoLocationManager.getCountryCode((err, result) => {
        if (err) {
            console.error('getCountryCode: err=' + JSON.stringify(err));
        }
        if (result) {
            console.log('getCountryCode: result=' + JSON.stringify(result));
        }
    });
} catch (err) {
    console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
}

geoLocationManager.getCountryCode

getCountryCode(): Promise<CountryCode>;

Obtains the current country code.

System capability: SystemCapability.Location.Location.Core

Return value

Type Description
CountryCode Callback used to receive the country code.

Error codes

For details about the error codes, see [Location Error Codes]](errorcode-geoLocationManager.md).

ID Error Message
3301000 Location service is unavailable.
3301500 Failed to query the area information.

Example

import geoLocationManager from '@ohos.geoLocationManager';
import BusinessError from "@ohos.base";
try {
    geoLocationManager.getCountryCode()
    .then((result) => {
        console.log('promise, getCountryCode: result=' + JSON.stringify(result));
    })
    .catch((error:number) => {
        console.error('promise, getCountryCode: error=' + JSON.stringify(error));
    });
} catch (err) {
    console.error("errCode:" + (err as BusinessError.BusinessError).code + ",errMessage:" + (err as BusinessError.BusinessError).message);
}