我正在尝试开发一款使用GPS的应用程序,并且我想将XTRA数据和时间参考注入GPS以便获得更快的修复。我的代码是下面一个:互联网连接帮助将数据注入GPS
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连接(如果无线网络是倒没什么错误消息)的下一个日志消息出现:
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之外,还有什么方法可以获得关于这些问题的更多信息? (我无法根据我的设备)。
预先感谢您
快速问题...为什么互联网连接可用的机会? – baash05 2013-03-31 14:02:34
必须投票下来,有很多应用程序可以下载,似乎只是做这件事,他们使连接到GPS更快。同样,虽然很多手机都是目标,但是有很多人可能会针对那些只有在硬件位于底座时才连接的设备。 (思考企业应用程序) – baash05 2013-05-06 07:15:16
确实有有效的用例。一个是当你知道你将没有数据连接。假设您在国外并已禁用数据漫游,但您可以在某些地方(在酒店,公共热点或类似地点)使用WiFi连接。在这种情况下,您可以在有WiFi的情况下手动下载AGPS数据,并且可以使用该数据一段时间。如果没有这个,你将无法使用AGPS,并会等待长达20分钟才能修复。 – user149408 2014-05-04 21:33:50