如何在Android应用程序中以编程方式重置和下载新的A-GPS数据?换句话说,“管理A-GPS状态”工具如何在GPS Status & Toolbox应用中运行?
答案 0 :(得分:12)
您应该可以使用LocationManager.sendExtraCommand(String provider, String command, Bundle extras)
。这将允许您删除全部或部分GPS数据,因此将重新下载。文档是here,但是从this code(对于GPS提供商)引用的参数快速概述:
对于provider
,请使用LocationManager.GPS_PROVIDER
。
对于command
,请使用"delete_aiding_data"
对于额外内容,如果您通过null
,则会删除所有数据。如果您只想删除特定数据(例如只需要年历或位置),您可以使用this function中的标记作为捆绑包中的附加内容。
不要忘记将android.permission.ACCESS_LOCATION_EXTRA_COMMANDS
添加到清单中的权限列表中!
答案 1 :(得分:4)
到目前为止,我的问题的最佳答案似乎是@Geobits的响应和Problems with sendExtraCommand and 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数据的最佳时间有其他想法,我会非常有兴趣听到。