【问题标题】:A-GPS, resetting GPS and sendExtraCommandA-GPS,重置 GPS 和 sendExtraCommand
【发布时间】:2014-08-05 08:26:38
【问题描述】:

我正在寻找一些解释这一切的信息。我有一个使用 GPS 的应用程序(在几部旧的 HTC Desire 手机和 Google Nexus 7 上进行了测试),我注意到 - 与其他一些应用程序一样 - GPS 位置更新可能会变得“缓慢”。似乎发生的情况是更新(1/秒 - 此应用程序需要良好的最新信息)通过 OK,但通常纬度/经度值不会改变(四处移动时)。有趣的是,alt 通常会这样做。

在阅读 Stack Overflow 之后,我发现使用以下代码“重置 GPS”(使用权限 android.permission.ACCESS_LOCATION_EXTRA_COMMANDS):

Bundle  extras = new Bundle();

extras.putBoolean("all", true);
locManager.sendExtraCommand("gps", "delete_aiding_data", extras);

似乎有帮助:位置有一个初始中断,然后真正的更新似乎更有用 - 直到它再次发生。

我还看了下面的代码

Bundle bundle = new Bundle();

locManager.sendExtraCommand("gps", "force_xtra_injection", bundle);
locManager.sendExtraCommand("gps", "force_time_injection", bundle);

可用于更新 A-GPS 缓存信息以获得更快的锁定(短时间),但需要网络连接才能执行下载。我还没试过。

我遇到的问题是,我无法在任何地方找到关于这些命令是什么、它们做什么、何时应该使用和不应该使用它们、为什么会发生等等的详细信息。有一些,但它是都有点轶事。

我真正追求的是被指向某个我可以阅读有关这一切的背景的地方。如果它看起来稍微长一点,我会非常高兴,前提是它不会随着时间的推移而退化。

【问题讨论】:

    标签: android gps locationmanager location-provider


    【解决方案1】:

    force_xtra_injection 导致 gps 软件向 Xtra 服务器请求帮助信息。 Xtra 是特定供应商支持的专有协议。据我所知,它并没有真正详细描述,但我想它确实包括卫星的星历数据。

    force_time_injection 强制时间辅助进入 GPS 软件。时间必须是 GPS 格式。这是通过使用 NTP 确定 GPS 时间的合理准确值并将其提供给手机中的 gps 软件来帮助确定初始位置来完成的。时间辅助仅用于第一个计算位置。在第一个位置之后,GPS 接收器知道的时间比您从外部软件界面提供的精度要高得多。

    星历是每颗卫星的轨道模型。如果你给它时间,它使用一个复杂的公式来指定卫星在太空中的位置。卫星以约 3.8 公里/秒的速度在其轨道上移动,因此尽可能准确地指定时间非常重要。

    时间辅助并不是真正用于计算位置,它用于确定(连同星历或历书)在您所在位置(或最后一个已知位置)可以看到哪些卫星以及该卫星的近似多普勒值将是。这使得 GPS 接收器可以缩小搜索参数,并有更好的机会在低信号强度下找到卫星,并且比没有时间更快地找到卫星。

    如果纬度/经度值没有变化,有几个原因:

    1) 该位置并非真正的 GPS 位置,它基于 WiFi 数据、cellID 数据或其他来源。您可以查看位置不确定性以了解使用了哪个源。如果不确定性为数百或数千米,则基于小区 ID。如果第一个位置弹出非常快并且您的信号条件很差(您在信号被阻挡的内部,但仍然获得 20 或 30 米的精度),那么您可能正在使用 WiFi 定位。

    2) GPS 软件正在夹紧位置报告。这是大多数人更喜欢改善用户体验的东西。没有人愿意在不开车的时候坐在红绿灯前看到他们的 GPS 位置四处游荡。如果夹住,您可以开始移动,并且夹子应该会在短时间内松开并开始跟踪您的位置。

    3) 您的信号条件非常差,GPS 位置正在更新,但更新速度非常慢。

    从 GPS 获取良好位置的最佳方式是保持良好的信号条件并连接到互联网,以便您可以从某些服务器获取辅助数据(星历、位置和当前 GPS 时间)。

    【讨论】:

    • 感谢您的出色描述。对于其他人来说,我找到了导致“迟钝”的原因 - 将设备从其(皮革折叠)外壳中取出。我认为这是最奇怪的,因为外壳中没有金属,只有一个黑色塑料插件用于将手机夹入其中。然后我读到一些塑料通过在混合物中加入碳而变成黑色,而碳是导体。所以,把天线后面的塑料切掉,性能大大提高了。
    • 是的,这是真的。手机中的一些深色使用碳纤维或碳粉来获得所需的色调。如果足够多,可能会导致 GPS 出现问题。如果案例是第三方售后市场项目,则更有可能。另外,我发现一些油漆颜色会影响 GPS 性能。一些工艺使用金属薄片使油漆看起来正确。金属太多,你也有同样的问题。这通常是在不良颜色发货之前通过测试发现的。
    • 相当详细的答案:)
    • @user2246302 我非常有兴趣与您讨论此事。您可以快速聊天吗?不知道如何继续,但将不胜感激。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多