Wie kann ich programmgesteuert neue A-GPS-Daten in einer Android-Anwendung zurücksetzen und herunterladen? Mit anderen Worten, wie funktionieren die Tools "A-GPS-Status verwalten" im GPS-Status? &Ampere; Toolbox App?
Sie sollten LocationManager.sendExtraCommand(String provider, String command, Bundle extras)
verwenden können. Dadurch können Sie alle oder einen Teil der GPS-Daten löschen, um sie erneut zu laden. Die Dokumente sind hier , aber ein kurzer Überblick über die Argumente, auf die von dieser Code (für einen GPS-Anbieter):
Für provider
verwenden Sie LocationManager.GPS_PROVIDER
.
Für command
verwenden Sie "delete_aiding_data"
Bei Extras, wenn Sie null
übergeben, werden alle Daten gelöscht. Wenn Sie nur bestimmte Daten löschen möchten (z. B. nur den Almanach oder die Position), können Sie die Flags in diese Funktion als Extras im Bundle.
Vergessen Sie nicht, android.permission.ACCESS_LOCATION_EXTRA_COMMANDS
zu Ihrer Berechtigungsliste im Manifest hinzuzufügen!
Bisher scheint die beste Antwort auf meine Frage eine Kombination aus @Geobits 'Antwort und dem XTRA-Injection-Code zu sein, der in Probleme mit sendExtraCommand und force_xtra_injection . Auf dieser Grundlage verwende ich derzeit Folgendes:
%Vor%Wenn jemand weitere Ideen hat, wie man dies verbessern kann oder wie man die besten Zeiten zum Löschen und Herunterladen neuer GPS-Daten ermittelt, wäre ich sehr interessiert daran zu hören.
Eine weitere einfache Möglichkeit, die GPS-Daten zu löschen, besteht darin, das Gerät auszuschalten und den Akku einige Minuten lang zu entladen. Ich bin mir nicht sicher, ob es für alle Geräte funktioniert. Ich habe auch ein einfaches Dienstprogramm geschrieben, das den GpsStatus-Listener verwendet, um anzuzeigen, ob der Almanach und die Ephemeriden für jeden Satelliten gespeichert wurden. Es heißt "GPS Check" und ist auf GP verfügbar.