Mi aplicación tiene la obligación de solicitar una contraseña si han pasado más de 60 minutos desde la última vez que ingresaron su contraseña o si el usuario ingresa la aplicación después de haber bloqueado el dispositivo.¿Cómo se puede saber si el iPhone se bloquea?
El problema es saber cuándo se bloquea el dispositivo. Si el usuario solo está cambiando de aplicación, la aplicación no necesita solicitar una contraseña a menos que hayan pasado 60 minutos desde la última solicitud de contraseña. Si bloquean el dispositivo, solicítelo nuevamente aunque haya pasado menos de 60 minutos.
Notificaciones tales applicationWillResignActive no ayudan porque no puede determinar si la aplicación se renunciaba activo debido al dispositivo ser bloqueado o el cambio de usuario a otra aplicación.
en la búsqueda, me encontré con mensajes que dicen que pueden registrarse para observar el UIApplicationProtectedDataWillBecomeUnavailable notificación.
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self selector:@selector(protectedDataWillBecomeUnavailable:)
name:UIApplicationProtectedDataWillBecomeUnavailable object:nil];
Cuando recibo esta notificación, configuro un indicador para solicitar la contraseña del usuario la próxima vez que se active la aplicación. Pero mi prueba ha demostrado que esta notificación es no enviada a menos que el dispositivo tenga una configuración de código de acceso.
He escrito un código de prueba para observar todas las notificaciones, y no veo ninguna otra notificación que indique que el dispositivo se está bloqueando.
¿Hay alguna otra forma de saber cuándo se bloquea el dispositivo?
posible duplicado de [Bloquear desbloquear eventos iphone] (http: // stackoverflow.com/questions/706344/lock-unlock-events-iphone) –
Probablemente la razón por la que no recibió dichas notificaciones es por lo siguiente: "Esto solo se aplica cuando un usuario tiene su dispositivo Protegido con contraseña, Protección de datos es no disponible en el simulador ". –