【问题标题】:LocationManager codenameone android/Iphone issue?LocationManager 代号一个 android/Iphone 问题?
【发布时间】:2019-03-02 06:11:25
【问题描述】:

我一直在各种安卓设备上测试 GPS 的功能, 我尝试了一个简单的 sn-p 代码,我只需执行以下操作:

Location position = LocationManager.getLocationManager().getCurrentLocationSync();

并尝试超时

Location position = LocationManager.getLocationManager().getCurrentLocationSync(20000);

而设备刚刚被顶部的 GPS 信号卡住了

正在搜索 GPS

设备:Samsung SM-N900 [Samsung GALAXY Note 3]、Samsung Note 8,有时在 Apple iPhone [iPhone 7] 上使用

--在苹果上,我认为如果你打电话,这个问题可能会重现

Location position = LocationManager.getLocationManager().getCurrentLocationSync(20000);

在短时间内不止一次[少于1分钟左右] 有时在苹果上,如果从 gps 获取结果需要太多时间,它会给出错误的读数


更新在没有 wifi 的 android 上从 GPS 获取当前位置时出现异常的位置:

09-27 07:22:35.668: W/System.err(8801): java.io.IOException: cannot retrieve location try later
09-27 07:22:35.668: W/System.err(8801):     at com.codename1.location.AndroidLocationPlayServiceManager.getCurrentLocation(AndroidLocationPlayServiceManager.java:74)
09-27 07:22:35.668: W/System.err(8801):     at c.a.iF(Unknown Source)
09-27 07:22:35.668: W/System.err(8801):     at b.a.a(Unknown Source)
09-27 07:22:35.668: W/System.err(8801):     at com.codename1.s.l.f$a.a(UIBuilder.java:2835)
09-27 07:22:35.668: W/System.err(8801):     at com.codename1.s.l.c.a(EventDispatcher.java:349)
09-27 07:22:35.668: W/System.err(8801):     at com.codename1.s.d.f(Button.java:570)
09-27 07:22:35.668: W/System.err(8801):     at com.codename1.s.d.g(Button.java:604)
09-27 07:22:35.668: W/System.err(8801):     at com.codename1.s.d.b(Button.java:708)
09-27 07:22:35.668: W/System.err(8801):     at com.codename1.s.u.b(Form.java:3259)
09-27 07:22:35.668: W/System.err(8801):     at com.codename1.s.l.f(Component.java:4288)
09-27 07:22:35.668: W/System.err(8801):     at com.codename1.s.q.a(Display.java:2065)
09-27 07:22:35.668: W/System.err(8801):     at com.codename1.s.q.j(Display.java:1043)
09-27 07:22:35.668: W/System.err(8801):     at com.codename1.s.q.i(Display.java:961)
09-27 07:22:35.668: W/System.err(8801):     at com.codename1.s.ai.run(RunnableWrapper.java:120)
09-27 07:22:35.668: W/System.err(8801):     at com.codename1.impl.b$1.run(CodenameOneThread.java:60)
09-27 07:22:35.668: W/System.err(8801):     at java.lang.Thread.run(Thread.java:818)

感谢帮助

问候,

【问题讨论】:

    标签: android gps cross-platform codenameone


    【解决方案1】:

    位置并不总是准确的。 GPS 信号可能无法到达。我们使用混合定位,它结合了来自 GPS 和其他传感器的数据,可以更快地为您提供估计位置。

    但是,此值会不断调整,因此获取 GPS 信号的最佳/最准确方法是使用监听器。请注意,如果您移动,GPS 会更准确。

    【讨论】:

    • ok ,但是我所考虑的 [是代码的 sn-p 可能会给您一种应用程序卡住的感觉,而即使您放了infiniteDialog,它也没有,即使是如何处理基于 1 分钟前先前坐标的错误 gps 坐标]
    • 当您尝试在没有任何wifi的情况下从系统重启获取Android上的位置时添加异常[上图],只是启用了位置
    • 您可以通过使用监听器来解决这两个问题。系统重启后需要一段时间才能找到信号和位置,监听器会让你调整位置。
    猜你喜欢
    • 2014-06-26
    • 1970-01-01
    • 2020-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多