Closed Aleziii closed 5 years ago
Thanks for reporting this.
This appears to be caused by a bug in Play Services library v16. See this SO post and this Google issue for more info. It may be that other versions of Android are affected by this, but so far I have only observed it on Android 8 with Play Services v16.
On pressing "OK" in the system dialog, the Play Services method erroneously returns the RESULT_CANCELED response code (same as when user presses "No thanks") instead of returning RESULT_OK. This means the plugin is being wrongly informed by the Play Services method that the user chose to cancel.
I can reproduce this issue on a Nexus 6P running Android 8.1 (has Play Services v16.0.89).
However on a Pixel 2 running Android 9 with exactly the same version of Play Services (v16.0.89), the issue does not occur. Also testing on the Android 8 emulator with Play Services v12.5.21, the issue does not occur.
Since this is a bug in the Play Services library itself, there is nothing I can do in the plugin code to work around it.
The specific Play Services component containing the bug is com.google.android.gms:play-services-location:16.0.0
.
This was released on 2 October 2018 and Google has yet to release an update to fix the bug (if you read the Google issue above, Google engineers actually refute that there is a bug).
Hopefully they will fix it soon and push out an update of the affected Play Services component to resolve the issue.
Ok, fixed issue.
I changed com.google.android.gms:play-services-location:15.+
to version 12.+ and resolved problem.
Thank you very much.
I'm submitting a ... (check one with "x"):
Bug report
Current behavior: When the executing this code:
cordova.plugins.locationAccuracy.request(function (success) { console.log("Successfully requested accuracy: " + success.message); }, function (error) { console.error("Accuracy request failed: error code=" + error.code + "; error message=" + error.message); }, cordova.plugins.locationAccuracy.REQUEST_PRIORITY_HIGH_ACCURACY);
The user screen request is presented to the user normally. However, on press Cancel or Ok the response with message "User chose not to make required location settings changes". Reponse code 4.
Expected behavior:
Press button 'OK' and response return correctly.
Steps to reproduce:
Environment information
Cordova CLI version
Cordova platform version
cordova platform ls
Plugins & versions installed in project (including this plugin) -cordova-plugin-device 2.0.2 "Device" -cordova-plugin-geolocation 4.0.1 "Geolocation" -cordova-plugin-ionic-keyboard 2.1.3 "cordova-plugin-ionic-keyboard" -cordova-plugin-ionic-webview 3.1.2 "cordova-plugin-ionic-webview" -cordova-plugin-request-location-accuracy 2.2.2 "Request Location Accuracy" -cordova-plugin-splashscreen 5.0.2 "Splashscreen" -cordova-plugin-statusbar 2.4.2 "StatusBar" -cordova-plugin-whitelist 1.3.3 "Whitelist" -cordova.plugins.diagnostic 4.0.12 "Diagnostic"
Dev machine OS and version, e.g.
Runtime issue
Android build issue:
If using an [Ionic Native Typescript wrapper]() for this plugin:
Ionic environment info cli packages: (/usr/lib/node_modules)
@ionic/cli-utils : 1.19.2 ionic (Ionic CLI) : 3.20.0
global packages:
local packages:
System:
Environment Variables:
Misc:
Console output
console.error: Accuracy request failed: error code=4; error message=User chose not to make required location settings changes.
``` // Paste any relevant JS/native console output here ```