Verwendet Android LocationManager manchmal Multi-Megabytes von Internet-Daten beim Erhalten von Positions-Fixes? Und wenn ja, unter welchen Umständen? Kann das passieren, selbst wenn die App, die den LocationManager benutzt, keine ausdrückliche Erlaubnis hat, auf das Internet zuzugreifen?Internet-Datennutzung durch Android LocationManager
Ich frage dies, weil ich kürzlich festgestellt habe, dass Internet-Daten von "Android OS" (wie von den Einstellungen -> "Datennutzung" Bildschirm auf meinem Samsung Galaxy Note mit Android 4.0.4 berichtet) ist manchmal 10 Megabyte oder mehr pro Tag. Experimente deuten darauf hin, dass diese Datennutzung nur auftritt, wenn ich eine App ausführe, die ich geschrieben habe und die vom Location Manager bereitgestellte GPS-Positionsdaten verwendet. Wenn diese App nicht läuft, verwendet "Android OS" nur wenige Kilobyte Daten pro Tag.
Die einzigen Berechtigungen im Manifest der App sind "android.permission.ACCESS_FINE_LOCATION" und "android.permission.WRITE_EXTERNAL_STORAGE". Es gibt keine Erlaubnis für den Internetzugang.
Die onStart() Methode Aktivität enthält den Code:
if (!mapview .ignoreGPS) {
lm.requestLocationUpdates(LocationManager. GPS_PROVIDER , gpsMinTime , gpsMinDistance , this);
}
ähnlicher Code aufgerufen wird, wenn der ignoreGPS Flag AUS umgeschaltet wird.
Es gibt auch eine gotoLastLocation() -Methode mit dem Code:
Location l = lm.getLastKnownLocation(LocationManager. GPS_PROVIDER);
if (l == null) {
l = lm .getLastKnownLocation(LocationManager. NETWORK_PROVIDER);
}
Diese Methode wird nur selten genannt wird, wenn das ignoreGPS Flag ein- und ausgeschaltet wird, oder wenn der Benutzer eine Menüoption zum letzten gehen bekannter Ort
Abgesehen von dieser selten aufgerufenen Methode gibt es keinen Hinweis auf "NETWORK_PROVIDER".
Verwendet GPS_PROVIDER standardmäßig "assistiertes GPS"? Wenn ja, könnte dies mehrere Megabyte an Daten verwenden? Auch wenn es keine Internet-Erlaubnis gibt?
Wenn GPS_PROVIDER keine GPS-Signale empfangen kann, verwendet LocationManager dann standardmäßig das Mobilfunknetz? Selbst wenn die App keine Netzwerkberechtigung hat? Würde dies vom Telefonanbieter als Internetdatenzugang gezählt?
[Dies] (http://developer.android.com/training/efficient-downloads/ index.html) kann für Ihre Interessen relevant sein. – Josh
Danke, Josh, für den Vorschlag, aber ich kann nichts sehen, das mir hilft. Fehle ich etwas? Meine App hat keine Zugriffsrechte für das Internet und fordert keine expliziten Downloads an. es scheint jedoch mehrere Megabyte Daten zu verbrauchen ... Ich nehme an, dass dies durch den Einsatz von Assisted GPS geschehen muss. Mein Problem ist, wie man das verhindert oder einschränkt. – prepbgg