On iOS 14+ and Android 12+, users can grant location access with reduced accuracy. Use these methods to manage and check that state.
Check current accuracy:
Use getLocationAccuracyAuthorization() to get the current state from locationAccuracyAuthorization constants.
Request temporary full accuracy (iOS 14+ only):
If your app has been granted reduced accuracy but needs high-accuracy GPS (e.g., for navigation), call requestTemporaryFullAccuracyAuthorization(purpose, successCallback, errorCallback).
Requirements for iOS:
You must define a purpose key in your *-Info.plist under NSLocationTemporaryUsageDescriptionDictionary.
Example config.xml setup:
<platform name="ios">
<config-file target="*-Info.plist" parent="NSLocationTemporaryUsageDescriptionDictionary">
<dict>
<key>navigation</key>
<string>This app requires access to your exact location in order to provide SatNav route navigation.</string>
</dict>
</config-file>
</platform>
cordova.plugins.diagnostic.requestTemporaryFullAccuracyAuthorization("navigation", function(accuracyAuthorization){
switch(accuracyAuthorization){
case cordova.plugins.diagnostic.locationAccuracyAuthorization.FULL:
console.log("Full accuracy authorized");
break;
case cordova.plugins.diagnostic.locationAccuracyAuthorization.REDUCED:
console.log("Full accuracy denied");
break;
}
}, function(error){
console.error(error);
});