Android: How to reset and download A-GPS data?

匿名 (未验证) 提交于 2019-12-03 01:06:02

问题:

How can I programmatically reset and download new A-GPS data in an Android application? In other words, how do the "Manage A-GPS state" tools work in the GPS Status & Toolbox app?

回答1:

You should be able to use LocationManager.sendExtraCommand(String provider, String command, Bundle extras). This will allow you to delete all or part of the GPS data, so it will redownload it. The docs are here, but a quick rundown of the arguments, referenced from this code(for a GPS Provider):

For provider, use LocationManager.GPS_PROVIDER.

For command, use "delete_aiding_data"

For extras, if you pass null, it will delete all data. If you want to delete specific data only(such as just the almanac or position), you can use the flags found in this function as extras in the bundle.

Don't forget to add android.permission.ACCESS_LOCATION_EXTRA_COMMANDS to your permission list in the manifest!



回答2:

So far, the best answer to my question seems to be a combination of @Geobits' response and the XTRA injection code discussed in Problems with sendExtraCommand and force_xtra_injection. Based on this, I am currently using the following:

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); 

If anyone has additional ideas on how to improve this, or how to determine the best times to clear and download new GPS data, I would be very interested to hear.



回答3:

Another simple way of clearing the GPS data is to turn the device off and take the battery out for a few minutes. I'm not sure if it works for all devices though. I have also written a simple utility which uses the GpsStatus Listener to display whether or not the almanac and the ephemerides have been saved for each satellite. It's called "GPS Check" and is available on GP.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!