2011-09-13 15 views
6

Sto lavorando a un'applicazione Web che consente agli utenti di accedere all'app, solo se si trovano in determinate regioni specificate. Ho chiamato locationManager startUpdatingLocation all'inizio della mia app per ottenere la posizione dell'utente e abilita/disabilita la registrazione in.CLLocationManager startUpdatingLocation vs startMonitoringSignificantLocationChanges

Una volta che l'utente è connesso, ho chiamato

[locationManager stopUpdatingLocation]; 
[locationManager startMonitoringSignificantLocationChanges]; 

e registra l'utente quando la posizione aggiornata è al di fuori della regione. Usare i due metodi si scontrerebbe in qualche modo? (Sto testando il codice sul simulatore quindi la posizione è sempre la stessa).

Nota: non sto utilizzando didEnterRegion o didExitRegion perché tutto è gestito da un codice Javascript esistente. Sto solo inviando la posizione corrente dell'utente.

+0

Non si scontrano. L'ho provato Puoi correre entrambi in sicurezza. –

risposta

2

In realtà dipende da cosa è necessario il percorso dopo che l'utente ha effettuato l'accesso. Quando si monitorano le modifiche significative, il proprio locationManager verrà informato solo in caso di modifiche importanti. (ad esempio, nuova torre cellulare, modifica del wifi, altre chiamate delle app, ecc.). Non sarà su una base coerente. Se tutto quello che ti interessa è l'accesso dell'utente, probabilmente eliminerei tutti i monitoraggi significativi. Se hai ancora bisogno di una posizione, preparati a ricevere solo aggiornamenti sporadici sul luogo.

+0

Ho iniziato con 'startUpdatingLocation' perché quando ho provato a utilizzare startMonitoringSignificantLocationChanges all'inizio dell'applicazione, non inviavo la posizione corrente alla mia applicazione. Dopo che l'utente ha effettuato l'accesso, in realtà non utilizzo la posizione a meno che l'utente non esca dall'area in cui è autorizzato ad accedere, quindi ho pensato che il monitoraggio significativo avrebbe funzionato. Non ho ancora provato su un dispositivo reale (e mi muovo abbastanza da avere un monitoraggio significativo per notificarmi qualcosa) perché sto ancora aspettando che Apple mi approvi come sviluppatore iOS a pagamento. – dee

+0

Generalmente, se si è attivi nella propria app, si monitorerebbe attivamente la posizione. Monitorare la posizione significativa è quando gli aggiornamenti di posizione non sono necessari più spesso. Come in sottofondo. Questo aiuta con la durata della batteria. –

+0

Se è necessario monitorare solo un'area specifica, suggerirei i metodi di monitoraggio della regione. Attualmente li sto usando e funzionano davvero bene. Cerca in -startMonitoringForRegion, dovresti trovare ciò di cui hai bisogno. –

Problemi correlati