harmony 鸿蒙Access Token Changelog
Access Token Changelog
cl.access_token.1 Behavior Change When Location Permission Is Requested by requestPermissionsFromUser
Access Level
Public
Reason for Change
According to privacy protection requirements, the location permission is added with the Allow only while in use option, and the ohos.permission.LOCATION_IN_BACKGROUND permission cannot be granted separately in a dialog box.
If an application requires ohos.permission.LOCATION_IN_BACKGROUND, the permission must be granted by the user in Settings. For details, see Adaptation Guide.
Change Impact
Involved permissions:
Foreground location permissions (used to control the behavior of a foreground application to obtain location information):
- ohos.permission.LOCATION: allows an application to obtain the precise location information of a device. This permission can be requested only after the ohos.permission.APPROXIMATELY_LOCATION permission is available.
- ohos.permission.APPROXIMATELY_LOCATION: allows an application to obtain approximate location information of a device.
Background location permission (used to control the behavior of a background application to obtain location information):
ohos.permission.LOCATION_IN_BACKGROUND: allows an application running in the background to obtain device location information. This permission can be requested only after the foreground location permissions are available.
The following scenarios are involved:
a) The application requests only the background location permission (without the foreground location permissions).
Before the change:
A dialog box will be displayed for granting the ohos.permission.LOCATION_IN_BACKGROUND permission.
After the change:
The ohos.permission.LOCATION_IN_BACKGROUND permission cannot be granted by the user in a dialog box.
b) The application requests only the background location permission (with the foreground location permissions available).
Before the change:
The ohos.permission.LOCATION_IN_BACKGROUND permission is granted when the ohos.permission.LOCATION permission is granted for the first time.
After the change:
The ohos.permission.LOCATION_IN_BACKGROUND permission cannot be granted by the user in a dialog box.
c) The application requests both the foreground and background location permissions.
Before the change:
A dialog box containing Allow and Deny will be displayed for granting the permissions.
After the change:
API 10 and earlier: A dialog box containing Allow only while in use and Deny will be displayed. If Allow only while in use is selected, only the ohos.permission.LOCATION permission is granted.
API 11 and later: No dialog box will be displayed for granting the foreground and background location permissions.
API level
9
Change Since
OpenHarmony SDK 4.1.5.3
Key API/Component Changes
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
Request the foreground and background location permissions for your application using requestPermissionsFromUser.
a) Check whether the application requires the background location permission. If yes, request the foreground location permissions first.
Change: atManager.requestPermissionsFromUser(context, ['ohos.permission.APPROXIMATELY_LOCATION', 'ohos.permission.LOCATION', 'ohos.permission.LOCATION_IN_BACKGROUND'], ......) To: atManager.requestPermissionsFromUser(context, ['ohos.permission.APPROXIMATELY_LOCATION', 'ohos.permission.LOCATION'], ......) Or change: atManager.requestPermissionsFromUser(context, ['ohos.permission.APPROXIMATELY_LOCATION', 'ohos.permission.LOCATION_IN_BACKGROUND'], ......) To: <br>atManager.requestPermissionsFromUser(context, ['ohos.permission.APPROXIMATELY_LOCATION'], ......).
b) After the user has granted the foreground location permissions, a dialog box is displayed, informing the user to grant the background location permission in Settings.
c) The user selects Always allow on the Settings screen to grant the background location permission.
Request only the background location permission for your application using requestPermissionsFromUser.
a) Check whether the application requires the background location permission. If yes, request the foreground location permissions in a dialog box first.
Change: atManager.requestPermissionsFromUser(context, ['ohos.permission.LOCATION_IN_BACKGROUND'], ......)
To: atManager.requestPermissionsFromUser(context, [‘ohos.permission.APPROXIMATELY_LOCATION’, ‘ohos.permission.LOCATION’], ……)
Or change: atManager.requestPermissionsFromUser(context, [‘ohos.permission.LOCATION_IN_BACKGROUND’], ……) To: atManager.requestPermissionsFromUser(context, [‘ohos.permission.APPROXIMATELY_LOCATION’], ……).
b) See the steps in case 1.
For details about the sample code, see requestPermissionsFromUser.
你可能感兴趣的鸿蒙文章
harmony 鸿蒙ArkUI Subsystem Changelog
harmony 鸿蒙Security Subsystem - Key Management Service Changelog
- 所属分类: 后端技术
- 本文标签:
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
7、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦