2010-04-22 5 views
6

Nella mia applicazione iPhone ho bisogno di usare il GPS (CoreLocation per essere precisi) per ottenere la posizione corrente del dispositivo. So che la maggior parte (se non tutte) le applicazioni che utilizzano il GPS hanno un popup implementato che chiede all'utente di consentire l'accesso al GPS. Viene eseguito automaticamente da iPhone SDK o devo implementare tali funzionalità da solo?iPhone SDK: Devo chiedere all'utente le autorizzazioni per usare il GPS?

Ho provato a eseguire la mia app su iPhone Simulator e non ha chiesto permessi, quindi mi chiedo se la stessa cosa accadrà sul telefono vero e proprio.

E se lo implemento da solo e SKD lo fornisce immediatamente, avrò due conferme nella mia app che non desidero.

risposta

4

Non sarà richiesto il permesso nel simulatore iphone ... Richiederà l'autorizzazione dell'utente solo nel dispositivo iphone ... e per questo non è necessario fare nulla esplicitamente .. Chiederà implicitamente ..

+0

C'è un motivo per cui non lo richiede sul simulatore? – RaYell

+0

Non so ... potrebbe essere come il simulatore risiede solo nel computer ... non c'è alcuna funzionalità di recuperare la sua posizione nel simulatore ... poiché potrebbe aver bisogno dell'aiuto del fornitore di servizi in esso ... –

8

Questo popup viene visualizzato automaticamente dal sistema se si tenta di accedere ai servizi di localizzazione di base sul dispositivo per la prima volta.
Se l'utente nega l'accesso, il delegato della posizione riceverà il messaggio didFailWithError: con l'errore kCLErrorDenied e sarà necessario interrompere l'uso del servizio di posizione (ad esempio chiamare [manager stopUpdatingLocation] sul proprio gestore di posizione).

+1

Grande risposta, grazie. – RaYell

+0

Possiamo visualizzare nuovamente questo popup se l'utente ha negato accidentalmente l'accesso? – Dharmendra

+0

no, sfortunatamente, tutto ciò che possiamo fare è richiedere all'utente di andare all'app Impostazioni e abilitare i servizi di localizzazione per la nostra applicazione. – Vladimir