【问题标题】:Assistance data injection into GPS辅助数据注入 GPS
【发布时间】:2011-05-25 14:41:47
【问题描述】:

我正在尝试开发一个使用 GPS 的应用程序,我想向 GPS 注入 XTRA 数据和时间参考,以便更快地修复。我的代码如下:

Bundle bundle = new Bundle();
boolean xtraInjection=locationmanager.sendExtraCommand(LocationManager.GPS_PROVIDER,"force_xtra_injection",bundle);
boolean timeInjection=locationmanager.sendExtraCommand(LocationManager.GPS_PROVIDER,"force_time_injection",bundle);

无论互联网连接是打开还是关闭(没有蜂窝网络也没有 wifi),xtraInjection 和 timeInjection 布尔值始终为真。所以,我无法检测到援助信息是否良好 注入 GPS。

启用 wifi 连接后,会出现下一条日志消息(如果 wifi 关闭,则不会出现错误消息):

I/app (  627): timeInjection:true
....
D/GpsLocationProvider(   96): NTP server returned: 1306322421969 (WedMay 25 13:20:21 GMT+02:00 2011) reference: 338139 certainty: 77 systemtime offset: 7162
D/lib_locapi( 96): loc_eng_inject_time, uncertainty = 77

相比之下,没有与 XTRA 数据相关的日志消息。如果 XTRA 数据仍然有效,系统不要求它吗?如何查看是否注入成功?

为了进行这些测试,我也尝试过删除辅助数据,但我知道这做得不好:

我的代码:

boolean reset=locationmanager.sendExtraCommand(LocationManager.GPS_PROVIDER, "delete_aiding_data", null);

日志:

I/app (  627): reset:false
D/lib_locapi(   96): loc_eng_ioctl for aiding data deletion returned 0, 1 for success

我也尝试过使用 GPS STATUS 应用程序,注入和删除的结果都相同。

简而言之,我不知道问题出在我的代码中还是在驱动程序实现中。除了 logcat,还有什么方法可以获取有关这些问题的更多信息? (我无法 root 我的设备)。

提前谢谢你

【问题讨论】:

  • 你找到解决办法了吗?

标签: android gps locationmanager supl


【解决方案1】:

如果您查看frameworks/base/services/java/com/android/server/location/GpsLocationProvider.java,您会发现这些命令将始终返回 true。

你应该这样做的理由很少,你不应该这样做的原因有几个:

  • Android 会在开机后网络首次出现时自动注入时间和 XTRA 数据。时间不需要重新注入,因为 GPS 芯片只要有修正就会将其内部时钟与 GPS 同步。 GPS 芯片会在需要时自动请求新的 XTRA 数据。
  • XTRA 仅适用于 Qualcomm GPS 芯片组。其他供应商确实有同等服务,但这些服务不像 XTRA 那样在 GpsLocationProvider 中公开。
  • 可能会有 Internet 连接可用。在这种情况下,GPS 只会在需要时从 SUPL 服务器下载星历,仅在无法下载时才回退到 XTRA。

【讨论】:

  • 快速提问...为什么互联网连接可用?
  • 不得不投反对票,有许多可以下载的应用程序似乎就是这样做的,它们使连接到 GPS 的速度更快。此外,尽管许多手机是目标,但不少人可能会瞄准仅在硬件位于基础时才连接的设备。 (思考企业应用)
  • 确实有有效的用例。一种是当你知道你将没有数据连接时。假设您在国外并且禁用了数据漫游,但您在某些地方有 WiFi 连接 - 在您的酒店、公共热点或类似的地方。在这种情况下,您可以在有 WiFi 访问权限时手动下载 AGPS 数据,并且可以使用该数据一段时间。如果没有这个,您将无法使用 AGPS,并且最多需要等待 20 分钟才能得到修复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-18
  • 2018-05-05
相关资源
最近更新 更多