2016-06-28 28 views
8

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!

+0

Quando si negano i dati di fitness a livello globale, il gestore di completamento restituisce 'nil'? – JAL

+0

No, restituisce i dati ... A meno che non uccidi l'app e la riavvii, in questo caso segnala l'errore correttamente. – nverinaud

risposta

0

In base a Apple's docs, + (BOOL) isAuthorizedForRecording è disponibile solo in iOS 9.0 e versioni successive, quindi non è possibile utilizzarlo su iOS8.

+0

Sì, lo so che non posso usare questa API :-( – nverinaud