Geolocation 代码名一个应用程序不提供真实位置
在out应用程序中,我们有一个模块,您可以通过GPS位置发送时间记录 在40%的情况下,我们有位置问题,因为模块提供的位置不是真实的(有时约1公里远) 当我们有这种情况下,我们打开谷歌地图应用程序,它给了我们完美的位置,然后再出应用程序,而不是真正的位置 为了获取位置,我们使用以下方法:Geolocation 代码名一个应用程序不提供真实位置,geolocation,codenameone,android-gps,Geolocation,Codenameone,Android Gps,在out应用程序中,我们有一个模块,您可以通过GPS位置发送时间记录 在40%的情况下,我们有位置问题,因为模块提供的位置不是真实的(有时约1公里远) 当我们有这种情况下,我们打开谷歌地图应用程序,它给了我们完美的位置,然后再出应用程序,而不是真正的位置 为了获取位置,我们使用以下方法: Slider s1 = new Slider(); Dialog dlg = makeDialog("HIGH PRECISION LOCATION...", s1, null, 'a'); dlg.addSh
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();
-
我们还添加了buil-hintandroid.playService.location=true
新增2020年4月25日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"/>
新增2020年5月6日10:48 也许这是有用的: 我注意到,当位置需要很多GPS图标不显示在顶栏 当所需时间较少时,GPS图标可见
再次查看代码,我注意到您使用了set-location listener和
getCurrentLocationSync
,在本例中它们是互斥的。你需要选一个。如果你给前者(这是首选方式)足够的时间工作,它应该给你一个准确的位置。请注意,GPS位置有时需要几秒钟的初始读数。再次查看代码,我注意到您使用了set-location listener和getCurrentLocationSync
,这在本例中是互斥的。你需要选一个。如果你给前者(这是首选方式)足够的时间工作,它应该给你一个准确的位置。请注意,GPS位置有时需要几秒钟的初始读数。这听起来与缺少的android.playService.location
问题一模一样。请检查codenameone_settings.properties中的拼写是否正确。如果是,请列出您拥有的所有android.*构建提示。@ShaiAlmog我已编辑了添加android构建提示的原始问题(请参阅“添加的25/04/2020 11:58部分”),您是否查看了codenameone\u设置。属性
?在那里更容易看到拼写错误的条目。我不知道我要找什么。Mycodenameone\u settings.properties
:这听起来很像缺少的android.playService.location
问题。请检查codenameone_settings.properties中的拼写是否正确。如果是,请列出您拥有的所有android.*构建提示。@ShaiAlmog我已编辑了添加android构建提示的原始问题(请参阅“添加的25/04/2020 11:58部分”),您是否查看了codenameone\u设置。属性
?在那里更容易看到拼写错误的条目。我不知道我要找什么。我的codenameone\u设置。属性
:我已尝试设置侦听器。。。有时需要30秒以上的时间,当我仍在加载应用程序时,我会关闭应用程序,然后再次启动它。瞧,完美的位置在2秒钟内。但我不能告诉客户重新启动应用程序,谷歌地图总是最多需要2秒钟。这种情况是否仅发生在您的设备或其他设备上?你确定从未调用侦听器回调吗?是的,因为在回调中我处理了一个加载对话框。。。而且它永远不会被处理,或者回调调用得太快,以至于对话框没有时间完全显示。我已经尝试设置了侦听器。。。有时需要30秒以上的时间,当我仍在加载应用程序时,我会关闭应用程序,然后再次启动它。瞧,完美的位置在2秒钟内。但我不能告诉客户重新启动应用程序,谷歌地图总是最多需要2秒钟。这种情况是否仅发生在您的设备或其他设备上?你确定从未调用侦听器回调吗?是的,因为在回调中我处理了一个加载对话框。。。而且它永远不会被处理,或者回调调用得太快以至于对话框还没有时间完全显示出来
<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"/>