iOS检测是否启用了设备密码锁定

时间:2015-01-19 23:56:07

标签: ios ios8

我正在编写今日通知中心小部件,我想根据设备是否启用密码锁来显示不同的信息(基本上我想隐藏机密信息,如果设备被密码锁定)。我环顾四周,无法找到任何好办法。有没有人能够成功地做到这一点?

3 个答案:

答案 0 :(得分:2)

我不会称之为最佳做法,但它应该是一种解决方法: 尝试访问钥匙串中的数据。如果它有效,该设备是免费的,如果没有它被锁定。

免责声明:随着WatchKit的变化,未来有可能会出现这种情况。它尚未记录,但有可能手表将能够访问钥匙串,但设备已被锁定。

答案 1 :(得分:1)

您可以为您的应用启用iOS数据保护,然后使用applicationProtectedDataWillBecomeUnavailable的{​​{1}}和applicationProtectedDataDidBecomeAvailable方法检测密码锁定设置的更改。

警告:这些API不适用于此用途,因此Apple始终存在使用它并拒绝您的应用程序的风险。

答案 2 :(得分:1)

仅适用于iOS 8,您可以使用kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly保护级别来确定设备是否已锁定。这个框架可以帮助你:https://github.com/liamnichols/UIDevice-PasscodeStatus