Я хотел бы узнать, заблокировано ли устройство, когда я загружаю виджет «Уведомление/Сегодня», поэтому я могу правильно показать виджет. (Это финансовый, и мы не хотим, чтобы показать остатки на заблокированном телефоне)Выяснение, заблокировано ли устройство, из виджета уведомлений
на устройствах с TouchID, я могу попытаться получить доступ к брелок, и если я получаю
errSecInteractionNotAllowed
назад , Заперто. Все хорошо. Это не работает на устройствах без touchID (но с PIN-кодом). Я нашел несколько вещей, которые рекомендуем использовать
[[UIApplication sharedApplication] protectedDataAvailable]
Однако я не [UIApplication sharedApplication]
в виджете.
Любые идеи, где и как это сделать? Мне просто нужно «да/нет»: устройство заблокировано.
Благодаря
[UPDATE: вот код у меня есть]
Получение файла:
+ (NSString *)lockedDeviceFilename {
NSURL *directoryUrl = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:USER_DEFAULTS_GROUP_NAME];
return [directoryUrl.path stringByAppendingPathComponent:@"security.dummy"];
}
Запись/создания файла (в приложении, а не расширение:
NSError *error = nil;
NSString *documentPath = [FOOStorageGatekeeper lockedDeviceFilename];
[[NSFileManager defaultManager] removeItemAtPath:documentPath error:&error];
BOOL created = [[NSFileManager defaultManager] createFileAtPath:documentPath
contents:[@"super secret file contents. we only care about the permissions" dataUsingEncoding:NSUTF8StringEncoding]
attributes:@{NSFileProtectionKey : NSFileProtectionComplete}];
Чтение:
BOOL isReadable = [[NSFileManager defaultManager] fileExistsAtPath:[FOOStorageGatekeeper lockedDeviceFilename]];
NSLog(@"isReadable? %@", isReadable ? @"YES" : @"NO");
Он всегда может читать файл даже на устройстве TouchID с заблокированным экраном. Если я смотрю на атрибутах, он показывает NSFileProtectionKey установлено в NSFileProtectionComplete ... но я все еще могу ПРОЧТИТЕ ЭТО :(
Update: нашла Опеку ответа Яны как правильный
Проверка наличия файла - это не то же самое, что проверка его читаемости. –