Autore Topic: gelolocalizzazione, workflow di invio ogni tot minuti  (Letto 681 volte)

Offline gsources75

  • Utente normale
  • ***
  • Post: 327
  • Respect: +9
    • Google+
    • pepigno75
    • devandroid_it
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Nexus S - Vodafone Smart -BB Bold- Iphone 4-
  • Play Store ID:
    Giuseppe+Sorce
  • Sistema operativo:
    Ubuntu-Windows Seven- Mac Lion
gelolocalizzazione, workflow di invio ogni tot minuti
« il: 02 Marzo 2012, 13:44:24 CET »
0
Salve devo inviare la poiszione del device al server ogni tot minuti, da 1 a 10... dipende dalla configurazione che il sever invia allo startup dell' applicazione.
La gelo-localizzazione deve funzionare che se l' utente non apre l' applicazione quindi userò un timer e un Service ovviamente.

Ciò che vorrei capire è cosa usare.. nel senso...

1)getLastKnownLocation: mi da l' ultima posizione, non c'è problema di batteria ma è possibile che nessuna altra applicazione aggiorni la Location..

2) locationManager.requestLocationUpdates(provider, intervallo, metri, listener): forzo il refresh della posizione

Quando richiedo con requestLocationUpdates la risposta non è immediata ma solo all' onLocationChanged ottengo la nuova posizione.

La prima soluzione è semplice.. un AlarmManager , un Service, recupero con getLastKnownLocation invio...

La seconda soluzione non mi convince perchè ho i parametri intervallo, metri che vanno un po in contraddizione con il timer che devo implementare.

Forse mi faccio troppo seghe mentali... potrei fare cosi ? :

- AlarmManager o un timer
- Service
- locationManager.requestLocationUpdates(provider, 0, 0, listener)
- all' evento onLocationChanged  rimuovo con locationManager.removeUpdates(listener);

La mia perplessità è se mettendo 0,0 quando "riattivo" il Listener  l' evento onLocationChanged viene chiamato sempre anche se il device non si è mosso?

Altra domanda... visto che l' intervallo di tempo è da 1 a 10 minuti mi conviene un semplice TimerTask?




      


La domanda stupida è quella che non si fa

Offline djdedo

  • Utente normale
  • ***
  • Post: 209
  • Respect: +15
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S2
Re:gelolocalizzazione, workflow di invio ogni tot minuti
« Risposta #1 il: 03 Marzo 2012, 09:15:25 CET »
0
Io implementerei un locationlistener col tempo di update restituitomi dal server in quanto con il metodo getlastknowposition non è detto che corrisponda alla posizione corrente del dispositivi (dipende anche quanto deve essere precisa la tua rilevazione)

Offline gsources75

  • Utente normale
  • ***
  • Post: 327
  • Respect: +9
    • Google+
    • pepigno75
    • devandroid_it
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Nexus S - Vodafone Smart -BB Bold- Iphone 4-
  • Play Store ID:
    Giuseppe+Sorce
  • Sistema operativo:
    Ubuntu-Windows Seven- Mac Lion
Re:gelolocalizzazione, workflow di invio ogni tot minuti
« Risposta #2 il: 03 Marzo 2012, 11:27:24 CET »
0
Si ma forse non mi sono spiegato la geo-localizzazione deve avvenire in background  quindi devo implementate per forza un Service.
La domanda stupida è quella che non si fa

Offline xWOLKx

  • Utente junior
  • **
  • Post: 72
  • Adoro quella citazione western!
  • Respect: +7
    • xWOLKx
    • Wolkrasgt
    • Mostra profilo
    • ZondeIT
  • Dispositivo Android:
    Samsung Galaxy Ace
  • Sistema operativo:
    Windows7
Re:gelolocalizzazione, workflow di invio ogni tot minuti
« Risposta #3 il: 04 Marzo 2012, 20:09:45 CET »
0
Devi fare un service e implementare li il locationmanager.

I due parametri di requestupdate() indicano esattamente un tempo minimo e/o una distanza minima prima di far scattare l'evento, ergo, che se imposti nell'intervallo 60 secondi per 60 secondi non hai chiamate a onlocationchange(), oppure puoi recuperare il time dell'ultima posizione con getTime su una location salvata e confrontarla col time attuale e scartare i valori finche non superano il valore impostato da te.

A te la scelta :D

Offline gsources75

  • Utente normale
  • ***
  • Post: 327
  • Respect: +9
    • Google+
    • pepigno75
    • devandroid_it
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Nexus S - Vodafone Smart -BB Bold- Iphone 4-
  • Play Store ID:
    Giuseppe+Sorce
  • Sistema operativo:
    Ubuntu-Windows Seven- Mac Lion
R: gelolocalizzazione, workflow di invio ogni tot minuti
« Risposta #4 il: 04 Marzo 2012, 20:59:46 CET »
0
ho creato un Service con un TimerTask e ogni tot minuti chiama requesUpdate con 0 sia come tempo che come metri..appena ricevo l' info aggiornata faccio il remove.
Sembra funzionare...certo il TimerTask non è elegante ma efficace

Inviato dal mio Galaxy Nexus usando Tapatalk
La domanda stupida è quella che non si fa