Posso verificare se l'utente ha autorizzato dati di fitness utilizzando -[CMMotionActivityManager queryActivityStartingFromDate:toDate:toQueue:withHandler:]
e controllare un errore (CMErrorNotAuthorized
o CMErrorMotionActivityNotAuthorized
) nel gestore.Come essere avvisati quando l'utente nega i dati di fitness?
Se l'utente passa a Impostazioni privacy e nega la mia app, l'app viene uccisa e quando la rilancio, tutto funziona correttamente.
Se l'utente andare a Impostazioni sulla privacy e negare i dati di fitness a livello globale, l'applicazione non viene ucciso e il controllo utilizzando il metodo di cui sopra non segnala alcun errore!
Devo scegliere come target iOS 8, quindi non posso utilizzare +[CMSensorRecorder isAuthorizedForRecording]
.
Avete qualche modo affidabile per risolvere questo problema? È abbastanza annoying avere una bella API per l'autorizzazione di posizione ma non per questo!
Quando si negano i dati di fitness a livello globale, il gestore di completamento restituisce 'nil'? – JAL
No, restituisce i dati ... A meno che non uccidi l'app e la riavvii, in questo caso segnala l'errore correttamente. – nverinaud