8

如何以编程方式在 Android 应用程序中重置和下载新的 A-GPS 数据?换句话说,“管理 A-GPS 状态”工具如何在GPS 状态和工具箱应用程序中工作?

4

2 回答 2

12

您应该可以使用LocationManager.sendExtraCommand(String provider, String command, Bundle extras). 这将允许您删除全部或部分 GPS 数据,以便重新下载。文档在这里,但是从这个代码(对于 GPS 提供者)引用的参数的快速纲要:

对于provider,使用LocationManager.GPS_PROVIDER

对于command, 使用"delete_aiding_data"

对于额外内容,如果您通过null,它将删除所有数据。如果您只想删除特定数据(例如仅年历或位置),您可以使用此函数中的标志作为捆绑包中的附加功能。

不要忘记在清单中添加android.permission.ACCESS_LOCATION_EXTRA_COMMANDS到您的权限列表!

于 2013-01-29T17:23:15.887 回答
4

到目前为止,我的问题的最佳答案似乎是@Geobits 的响应和在SendExtraCommand 和 force_xtra_injection 的问题中讨论的 XTRA 注入代码的组合。基于此,我目前正在使用以下内容:

locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
locationManager.sendExtraCommand(LocationManager.GPS_PROVIDER,"delete_aiding_data", null);
Bundle bundle = new Bundle();
locationManager.sendExtraCommand("gps", "force_xtra_injection", bundle);
locationManager.sendExtraCommand("gps", "force_time_injection", bundle);

如果有人对如何改进这一点有其他想法,或者如何确定清除和下载新 GPS 数据的最佳时间,我会很感兴趣。

于 2013-02-04T10:28:56.940 回答