erlug
[Top] [All Lists]

Re: [Erlug] Delucidazioni GPS Android

To: ERlug - Lista Pubblica <erlug@xxxxxxxxxxxxxx>
Subject: Re: [Erlug] Delucidazioni GPS Android
From: Massimiliano Leone <k0smik0.mailinglists@xxxxxxxxx>
Date: Thu, 23 Jun 2016 22:11:41 +0200
(pardon del [jet]lag per la risposta)

"Per cui la mia domanda è: da dove diavolo prende le coordinate?" <- lo prende dalle altre app che condividono il geofix, o dalla rete 3g 

ptima del locationservice c'era il passive_location: le app che si registrano al passive_location (e ora al fusedlocationprovider) ricevono un intent che viene intercettato dal broadcastreceiver (che hai opportunamente registrato al passive_location OR fusedlocationprovider) - in quell'intent c'è la geoposizione che altre app (in primis: google maps) hanno ottenuto, e che, generosamente, ricondividono nel sistema

qui una lettura interessante su quello che fu il passive_location (poi confluito nel fusedlocationprovider) http://android-developers.blogspot.it/2011/06/deep-dive-into-location.html

qui un progetto (attuale, che io stesso utilizzo nelle mie app) che implementa in maniera adeguata le location strategies del fusedprovider: https://github.com/mrmans0n/smart-location-lib (non è l'unico, ma è quello che più mi piace per eleganza d'implementazione e chiarezza architetturale)
qui un progetto obsoleto https://github.com/jgilfelt/Novocation che implementava le strategies PRE fusedlocation ma che è assai interessante come caso di studio
qui un altro progetto pre-fused, che usa aspectj per ottenere la geoposizione https://github.com/mttkay/ignition/blob/master/ignition-location/ignition-location-samples/src/com/github/ignition/samples/location/ui/IgnitedLocationSampleActivity.java (non c'è doc/readme come negli altri, perciò il link è diretto al codice)

qui, infine, dei progetti miei che fanno da wrapper ai progetti di cui sopra (novocation prima, e smart-location-lib poi)
https://github.com/k0smik0/polaris <- pure interfacce che definiscono signature per il client
https://github.com/k0smik0/kusor <- il wrapper vero e proprio delle librerie di cui sopra, che implementa le interfacce definite in polaris
ti ho linkato pure i miei progetti (non-pubblicità mode on) perchè magari trovi altre facce del poliedro della funzionalità "voglio la geoposizione"
come vedrai leggendo i vari samples (delle librerie precedenti), c'è chi ha accoppiato la chiamata al metodo "getLastKnowLocation" all'Activity, chi a un particolare trigger, eccetera - ognuno aveva una sua idea architetturale, del resto -- i miei wrapper sono l'ennesima variante sul tema, poiché io volevo usare le funzionalità del locationservice in un Service, in un primo momento, e successivamente anche in altri componenti (esternalizzabili), sicchè prima nacque un wrapper "alla buona", e poi lo refactorizzai il tutto dividendo in interfacce+implementazione, la qual seconda, all'occorrenza, switcha libreria in base a varie ed eventuali (supporto non più presente [es: novocation], "bellezza" dell'implementazione [es: smart-location-lib], ecc]


se stai realizzando un'app tanto per divertimento, magari i 3/4 di queste chiacchiere ti avranno già annoiato, se invece ti stai cimentando in android (+o-) seriamente, adotta come leit-motiv "disaccoppiamento" - ti renderai conto da te che ad ogni update di major version (a volte anche minor) ti cambiano le API sotto il naso, sia come signature che come comportamento, e se ti leghi fortemente a un componente/implementazione (spesso perche ti ispiri a un libro/sito di esempio), dopo 6 mesi inizi a imprecare perche non funziona quasi piu niente


buon divertimento ;D

ps:
il sito howtogeek dice (anche) il giusto, ma passive_location a.k.a. fusedlocationprovider se ne frega di quelle impostazioni che tu togli/metti come indicato - se disattivi lo scanning (a parte risparmiare batteria, che non fa male), rendi solo più lenta la triangolazione in aree in cui non sei mai stato, ma non aumenti la (tua) privacy: una volta che ti sei collegato a una certa wifi, android manda la coppia macaddress (di quella wifi) - geoposition a google medesimo, per future triangolazioni rapide (tue o di altri)
pps: la geoposition la manda per associarlo all'ap cui sei collegato, quindi, alfine, sta mantenendo informazioni (+o-) sensibili del proprietario dell'ap.

ri-buon divertimento ;D

Il giorno 16 febbraio 2016 16:01, ThEgAmEr <xthegamerx@xxxxxxxxx> ha scritto:
2016-02-16 14:52 GMT+01:00 Francesco Iezzi <vanum@xxxxxxxxxx>:
> Un po' troppo.
> Il mio problema è che con il wi-fi spento e il gps spento, il sistema
> continua a prendere le coordinate gps (e se mi sposto le aggiorna anche).

Il problema e' te ti aspetti che il sistema faccia quel che gli chiedi
ovvero tenere spento il wifi, purtroppo non e' cosi':
http://www.howtogeek.com/211186/how-to-disable-google-location-wi-fi-scanning-on-android/

Ci sono distribuzioni android piu' rispettose dell'utente (ad es
Cyanogenmod) in cui questo comportamento e' reso piu' evidente e
facile da controllare.
_______________________________________________
Erlug mailing list
Erlug@xxxxxxxxxxxxxx
http://erlug.linux.it/cgi-bin/mailman/listinfo/erlug
-----------------------------------------------------------
ErLUG webzine: http://erlug.linux.it
Manuali FDL:
LinuxFacile - http://linuxfacile.medri.org/
Linux Da Zero - http://erlug.linux.it/linuxdazero/
Connettivita' offerta da Ehiweb.it - http://www.ehiweb.it/
-----------------------------------------------------------



--
<Prev in Thread] Current Thread [Next in Thread>
  • Re: [Erlug] Delucidazioni GPS Android, Massimiliano Leone <=