辅助数据注入GPS
|
我正在尝试开发一个使用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);
无论Internet连接是打开还是关闭(无蜂窝,也没有wifi),xtraInjection和timeInjection布尔值始终为true。因此,我无法检测到辅助信息是否正确
注入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之外,还有什么方法可以获取有关这些问题的更多信息? (我无法启动我的设备)。
先感谢您
没有找到相关结果
已邀请:
1 个回复
妊辽剁茧
,您会发现这些命令将始终返回true。 您执行此操作的理由很少,而您不应该执行此操作的理由如下: 引导后首次启动网络时,Android将自动注入时间和XTRA数据。不需要重新注入时间,因为只要有修复,GPS芯片就会将其内部时钟与GPS同步。 GPS芯片将在需要时自动请求新的XTRA数据。 XTRA仅适用于Qualcomm GPS芯片组。其他供应商确实提供了等效的服务,但是这些服务没有像XTRA一样在GpsLocationProvider中公开。 可能会有Internet连接可用。在这种情况下,GPS将仅在需要时从SUPL服务器下载星历表,而在不可能时仅回退到XTRA。