Access Token Changelog

cl.access_token.1 Behavior Change When Location Permission Is Requested by requestPermissionsFromUser

Access Level

Public

Reason for Change

This change is a non-compatible change. According to privacy protection requirements, the ohos.permission.APPROXIMATELY_LOCATION permission must be requested together with the ohos.permission.LOCATION_IN_BACKGROUND or ohos.permission.LOCATION permission.

Change Impact

Before the change, when requestPermissionsFromUser is called to request the location permission, an authorization dialog box will be displayed in either of the following cases:

  • The ohos.permission.LOCATION_IN_BACKGROUND permission is requested without the ohos.permission.APPROXIMATELY_LOCATION permission.

  • The ohos.permission.LOCATION_IN_BACKGROUND and ohos.permission.LOCATION permissions are requested without the ohos.permission.APPROXIMATELY_LOCATION permission.

After the change, the authorization dialog box will not be displayed in the preceding two cases. The ohos.permission.APPROXIMATELY_LOCATION permission must be requested together with the ohos.permission.LOCATION_IN_BACKGROUND or ohos.permission.LOCATION permission.

Change Since

OpenHarmony SDK 4.1.1.5

Key API/Component Changes

The ohos.permission.APPROXIMATELY_LOCATION permission must also be requested when the ohos.permission.LOCATION_IN_BACKGROUND or ohos.permission.LOCATION permission is requested by using requestPermissionsFromUser in @ohos.abilityAccessCtrl.d.ts.

Affected APIs

File API
@ohos.geolocation.d.ts geolocation.on('locationChange')
@ohos.geolocation.d.ts geolocation.off('locationChange')
@ohos.geolocation.d.ts geolocation.on('locationServiceState')
@ohos.geolocation.d.ts geolocation.off('locationServiceState')
@ohos.geolocation.d.ts geolocation.on('cachedGnssLocationsReporting')
@ohos.geolocation.d.ts geolocation.off('cachedGnssLocationsReporting')
@ohos.geolocation.d.ts geolocation.on('gnssStatusChange')
@ohos.geolocation.d.ts geolocation.off('gnssStatusChange')
@ohos.geolocation.d.ts geolocation.on('nmeaMessageChange')
@ohos.geolocation.d.ts geolocation.off('nmeaMessageChange')
@ohos.geolocation.d.ts geolocation.on('fenceStatusChange')
@ohos.geolocation.d.ts geolocation.off('fenceStatusChange')
@ohos.geolocation.d.ts geolocation.getCurrentLocation
@ohos.geolocation.d.ts geolocation.getLastLocation
@ohos.geolocation.d.ts geolocation.isLocationEnabled
@ohos.geolocation.d.ts geolocation.requestEnableLocation
@ohos.geolocation.d.ts geolocation.isGeoServiceAvailable
@ohos.geolocation.d.ts geolocation.getAddressesFromLocation
@ohos.geolocation.d.ts geolocation.getAddressesFromLocationName
@ohos.geolocation.d.ts geolocation.getCachedGnssLocationsSize
@ohos.geolocation.d.ts geolocation.flushCachedGnssLocations
@ohos.geolocation.d.ts geolocation.sendCommand
@ohos.geolocation.d.ts SatelliteStatusInfo
@ohos.geolocation.d.ts CachedGnssLocationsRequest
@ohos.geolocation.d.ts GeofenceRequest
@ohos.geolocation.d.ts Geofence
@ohos.geolocation.d.ts ReverseGeoCodeRequest
@ohos.geolocation.d.ts GeoCodeRequest
@ohos.geolocation.d.ts GeoAddress
@ohos.geolocation.d.ts LocationRequest
@ohos.geolocation.d.ts CurrentLocationRequest
@ohos.geolocation.d.ts Location
@ohos.geoLocationManager.d.ts geoLocationManager.on('nmeaMessage')
@ohos.geoLocationManager.d.ts geoLocationManager.off('nmeaMessage')
@ohos.geoLocationManager.d.ts geoLocationManager.on('locatingRequiredDataChange')
@ohos.geoLocationManager.d.ts geoLocationManager.off('locatingRequiredDataChange')
@ohos.geoLocationManager.d.ts geoLocationManager.getLocatingRequiredData
@ohos.bluetooth.d.ts bluetooth.startBluetoothDiscovery
@ohos.bluetooth.d.ts startBLEScan
@ohos.bluetoothManager.d.ts bluetoothManager.startBluetoothDiscovery
@ohos.bluetoothManager.d.ts startBLEScan
@ohos.telephony.observer.d.ts observer.on('cellInfoChange')
@ohos.telephony.radio.d.ts radio.sendUpdateCellLocationRequest
@ohos.telephony.radio.d.ts radio.getCellInformation
@system.geolocation.d.ts GetLocationOption
@system.geolocation.d.ts SubscribeLocationOption
@system.geolocation.d.ts geolocation.getLocation
@system.geolocation.d.ts geolocation.subscribe
@system.geolocation.d.ts geolocation.unsubscribe
@ohos.wifi.d.ts wifi.scan
@ohos.wifi.d.ts wifi.getScanInfos
@ohos.wifi.d.ts wifi.getDeviceConfigs
@ohos.wifi.d.ts wifi.getStations
@ohos.wifi.d.ts wifi.getCurrentGroup
@ohos.wifi.d.ts wifi.getP2pPeerDevices
@ohos.wifi.d.ts wifi.p2pConnect
@ohos.wifi.d.ts wifi.startDiscoverDevices
@ohos.wifi.d.ts wifi.on('p2pDeviceChange')
@ohos.wifi.d.ts wifi.off('p2pDeviceChange')
@ohos.wifi.d.ts wifi.on('p2pPeerDeviceChange')
@ohos.wifi.d.ts wifi.off('p2pPeerDeviceChange')
@ohos.wifiManager.d.ts wifiManager.scan
@ohos.wifiManager.d.ts wifiManager.getScanResults
@ohos.wifiManager.d.ts wifiManager.getScanResultsSync
@ohos.wifiManager.d.ts wifiManager.getCandidateConfigs
@ohos.wifiManager.d.ts wifiManager.getDeviceConfigs
@ohos.wifiManager.d.ts wifiManager.getStations
@ohos.wifiManager.d.ts wifiManager.getCurrentGroup
@ohos.wifiManager.d.ts wifiManager.getP2pPeerDevices
@ohos.wifiManager.d.ts wifiManager.p2pConnect
@ohos.wifiManager.d.ts wifiManager.startDiscoverDevices
@ohos.wifiManager.d.ts wifiManager.getP2pGroups
@ohos.wifiManager.d.ts wifiManager.on('p2pDeviceChange')
@ohos.wifiManager.d.ts wifiManager.off('p2pDeviceChange')
@ohos.wifiManager.d.ts wifiManager.on('p2pPeerDeviceChange')
@ohos.wifiManager.d.ts wifiManager.off('p2pPeerDeviceChange')

Adaptation Guide

Refer to requestPermissionsFromUser when modifying EntryAbility.ets and importing GlobalThis.

    let context: common.UIAbilityContext = GlobalThis.getInstance().getContext('context');
    atManager.requestPermissionsFromUser(context, ['ohos.permission.APPROXIMATELY_LOCATION', 'ohos.permission.LOCATION', 'ohos.permission.LOCATION_IN_BACKGROUND']).then((data) => {
        console.info('data:' + JSON.stringify(data));
    }).catch((err: BusinessError) => {
        console.info('data:' + JSON.stringify(err));
    })