В нашем приложении есть модуль, с помощью которого вы можете отправлять записи времени с указанием местоположения по GPS.
В 40% случаев у нас есть проблема с местоположением, потому что модуль предоставляет местоположение, которое не является реальным (иногда на расстоянии около 1 км).
Когда у нас есть эти кейсы, мы открываем приложение Google Maps, и оно дает нам идеальное местоположение, затем снова приложение и не реальное местоположение.
Для получения местоположения мы используем это:
Slider s1 = new Slider();
Dialog dlg = makeDialog("HIGH PRECISION LOCATION...", s1, null, 'a');
dlg.addShowListener((ActionListener) e -> {
LocationManager locationManager = LocationManager.getLocationManager();
locationManager.setLocationListener(this, new LocationRequest(LocationRequest.PRIORITY_HIGH_ACCUARCY, 500));
loc = locationManager.getCurrentLocationSync(20000);
dlg.dispose();
if(loc == null) {
Slider s2 = new Slider();
Dialog dlg2 = makeDialog("GETTING LAST KNOWN LOCATION...", s2, "OK", 'a');
dlg2.addShowListener((ActionListener) e2 -> {
loc = locationManager.getLastKnownLocation();
if(loc == null) {
// location not found
Dialog.show("Attenzione!", "Posizione non trovata. E' consigliato di spostarsi all'aperto. "
+ "Tuttavia è possibile inviare la timbratura anche senza coordinate.", "Ok", null);
} else {
paintLocation(loc, GPSStateOn);
}
});
dlg2.show();
} else {
paintLocation(loc, GPSStateOn);
}
});
dlg.show();
-
@Override
public void locationUpdated(final Location location) {
switch (LocationManager.getLocationManager().getStatus()) {
case LocationManager.AVAILABLE:
GPSStateOn = true;
break;
case LocationManager.OUT_OF_SERVICE:
GPSStateOn = false;
break;
case LocationManager.TEMPORARILY_UNAVAILABLE:
GPSStateOn = false;
break;
}
if(loc != null) {
paintLocation(loc,GPSStateOn);
System.out.println("-----LATITUDINE: " + loc.getLatitude());
System.out.println("-----LONGITUDINE: " + loc.getLongitude());
}
}
Мы также добавили подсказку по сборке android.playService.location = true
ДОБАВЛЕНО 25/04/2020 11:58 Я забыл сказать, что примерно в 40% случаев он приходит на "УЗНАТЬ ПОСЛЕДНЕЕ ИЗВЕСТНОЕ МЕСТОПОЛОЖЕНИЕ ...", а затем дает идеальное реальное местоположение. Советы по сборке Android:
последний обрезан ... значение:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/><uses-feature android:glEsVersion="0x00020000" android:required="true"/><uses-permission android:name="android.permission.CAMERA"/><uses-feature android:name="android.hardware.camera" android:required="false"/>
ДОБАВЛЕНО 06.05.2020 10:48
Может быть, это может быть полезно: я заметил, что когда местоположение занимает много места, значок GPS не отображается на верхней панели
А когда это займет меньше времени, значок GPS станет видимым
android.playService.location
. Пожалуйста, проверьте правильность написания в codenameone_settings.properties. Если да, перечислите все имеющиеся у вас советы по сборке android. *. - person Shai Almog   schedule 25.04.2020codenameone_settings.properties
? Там легче увидеть неправильно написанную запись. - person Shai Almog   schedule 26.04.2020codenameone_settings.properties
: pastebin.com/raw/xQ04qgVQ - person loreeemartiii   schedule 26.04.2020