La mia app ha l'obbligo di richiedere una password se sono trascorsi più di 60 minuti dall'ultima immissione della password o se l'utente accede all'app dopo aver bloccato il dispositivo.Come si può sapere se l'iphone viene bloccato?
Il problema è sapere quando il dispositivo viene bloccato. Se l'utente sta passando da un'applicazione all'altra, l'app non deve richiedere una password a meno che non siano trascorsi 60 minuti dall'ultima richiesta di password. Se bloccano il dispositivo, richiedi nuovamente anche se sono trascorsi meno di 60 minuti.
Comunicazioni tale applicationWillResignActive non aiutano perché non è possibile determinare se l'applicazione è dimesso attivo dovuta al dispositivo essendo bloccato o il cambio utente a un'altra applicazione.
nella ricerca, ho trovato i messaggi che dicono posso registrarsi per osservare il UIApplicationProtectedDataWillBecomeUnavailable notifica.
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self selector:@selector(protectedDataWillBecomeUnavailable:)
name:UIApplicationProtectedDataWillBecomeUnavailable object:nil];
Quando torno a questa notifica ho impostare un flag per richiedere la password dell'utente la volta successiva che l'applicazione diventa attivo. Ma i miei test hanno dimostrato che questa notifica è non inviata a meno che il dispositivo non abbia una configurazione di passcode.
Ho scritto codice di prova per osservare tutte le notifiche e non vedo altre notifiche che indichino che il dispositivo si sta bloccando.
C'è un altro modo per sapere quando il dispositivo viene bloccato?
possibile duplicato di [Lock Unlock events iphone] (http: // stackoverflow.it/questions/706344/lock-unlock-events-iphone) –
Probabilmente il motivo, non hai ricevuto le notifiche di cui sopra è a causa di quanto segue: "Questi vengono applicati solo quando un utente ha il proprio dispositivo protetto da passcode, la protezione dei dati è non disponibile nel simulatore. " –