Мне нужно точное местоположение GPS в моем приложении для Android. Я использую этот плагин Cordova для определения местоположения GPS: https://github.com/pmwisdom/cordova-background-geolocation-services
Это код, который запрашивает местоположение GPS:
if (locationClientAPI == null) {
connectToPlayAPI();
} else if (locationClientAPI.isConnected()) {
locationRequest = LocationRequest.create()
.setPriority(translateDesiredAccuracy(LocationRequest.PRIORITY_HIGH_ACCURACY))
.setFastestInterval(4000)
.setInterval(5000)
.setSmallestDisplacement(0);
LocationServices.FusedLocationApi.requestLocationUpdates(locationClientAPI, locationRequest, locationUpdatePI);
this.isRecording = true;
if(isDebugging) {
Log.d(TAG, "- Recorder attached - start recording location updates");
}
} else {
locationClientAPI.connect();
}
Это работает на многих телефонах Android, но на некоторых (например, Samsung Galaxy S8) точность ОЧЕНЬ плохая. Часто 500-1500 м, что совершенно непригодно для приложения. Я также заметил, что если я одновременно открою Карты Google, местоположение также будет повсюду, ДО ТОГО, как я начну путеводители по маршруту, - тогда оно станет точным, почти мгновенно. И если я использую свое приложение, когда включен маршрут, все очень точно и красиво.
В настройках Android моему приложению разрешено использовать самую высокую точность GPS.
Как я могу добиться высокой точности без необходимости включать навигацию по маршруту в картах Google.