Geolocation 代码名一个应用程序不提供真实位置

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

在out应用程序中,我们有一个模块,您可以通过GPS位置发送时间记录

在40%的情况下,我们有位置问题,因为模块提供的位置不是真实的(有时约1公里远)

当我们有这种情况下,我们打开谷歌地图应用程序,它给了我们完美的位置,然后再出应用程序,而不是真正的位置

为了获取位置,我们使用以下方法:

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-hint
android.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设置。属性
?在那里更容易看到拼写错误的条目。我不知道我要找什么。My
codenameone\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"/>