Android LocationManager talvolta utilizza megabyte di dati Internet quando ottiene le correzioni di posizione? E se sì, in quali circostanze? Può accadere anche quando l'app che utilizza il LocationManager non dispone dell'autorizzazione esplicita per accedere a Internet?Utilizzo dati Internet da LocationManager Android
Lo chiedo perché ho recentemente notato che i dati utilizzati da internet "OS Android" (come riportato da Impostazioni -> schermata "Utilizzo dati" sul mio Samsung Galaxy Note con Android 4.0.4) a volte è di 10 megabyte o più al giorno. La sperimentazione suggerisce che questo utilizzo dei dati si verifica solo quando eseguo un'applicazione che ho scritto e che utilizza i dati di posizione GPS forniti dal Location Manager. Quando questa app non è in esecuzione "Sistema operativo Android" utilizza solo pochi kilobyte di dati al giorno.
Le uniche autorizzazioni nel manifest di app sono "android.permission.ACCESS_FINE_LOCATION" e "android.permission.WRITE_EXTERNAL_STORAGE". Non esiste alcuna autorizzazione per l'accesso a Internet.
metodo onStart() del l'attività contiene il codice:
if (!mapview .ignoreGPS) {
lm.requestLocationUpdates(LocationManager. GPS_PROVIDER , gpsMinTime , gpsMinDistance , this);
}
codice simile viene chiamato quando la bandiera ignoreGPS viene alternata off.
V'è anche un metodo di gotoLastLocation() contenente il codice:
Location l = lm.getLastKnownLocation(LocationManager. GPS_PROVIDER);
if (l == null) {
l = lm .getLastKnownLocation(LocationManager. NETWORK_PROVIDER);
}
Questo metodo viene chiamato solo raramente, quando la bandiera ignoreGPS viene alternata spento o quando l'utente seleziona un'opzione di menu per andare all'ultima posizione nota
Oltre a questo metodo raramente chiamato, non vi è alcun riferimento a "NETWORK_PROVIDER".
GPS_PROVIDER utilizza "GPS assistito" per impostazione predefinita? In tal caso, questo potrebbe utilizzare più megabyte di dati? Anche se non c'è il permesso di internet?
Se GPS_PROVIDER non è in grado di ottenere una correzione dai segnali GPS, LocationManager utilizza di default la rete di telefoni cellulari? Anche se l'app non ha il permesso di rete? Questo verrà conteggiato dal provider telefonico come accesso ai dati Internet?
[Questo] (http://developer.android.com/training/efficient-downloads/ index.html) potrebbe essere rilevante per i tuoi interessi. – Josh
Grazie, Josh, per il suggerimento ma non riesco a vedere nulla che mi aiuti. Mi sto perdendo qualcosa? La mia app non ha il permesso di accedere a Internet e non richiede download espliciti; tuttavia sembra consumare più megabyte di dati ... presumo che ciò avvenga tramite l'uso del GPS assistito. Il mio problema è come prevenirlo o limitarlo. – prepbgg