以编程方式检查 iOS 上是否设置了密码锁 7

Programatically Checking if a Passcode Lock is Set on iOS 7

我实现了此处描述的密码检测 - Programatically Checking if a Passcode Lock is Set ,但它仅适用于 iOS 8 及更高版本。

此行应用程序崩溃secRecord.AccessControl = new SecAccessControl (SecAccessible.WhenPasscodeSetThisDeviceOnly); 是否可以通过编程方式检查 iOS 7 上的密码状态? 我没有找到任何关于此的信息。

没有你 cant.From 文档:

kSecAttrAccessibleAfterFirstUnlock

钥匙串项中的数据在重启后无法访问,直到设备被用户解锁一次。

第一次解锁后,数据在下次重启前仍然可以访问。对于需要由后台应用程序访问的项目,建议这样做。使用加密备份时,具有此属性的项目会迁移到新设备。

在 iOS 4.0 及更高版本中可用。

kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly

钥匙串项中的数据在重启后无法访问,直到设备被用户解锁一次。

第一次解锁后,数据在下次重启前仍然可以访问。对于需要由后台应用程序访问的项目,建议这样做。具有此属性的项目不会迁移到新设备。因此,从不同设备的备份恢复后,这些项目将不存在。

在 iOS 4.0 及更高版本中可用。

kSecAttrAccessibleAlways

无论设备是否被锁定,钥匙串项中的数据始终可以访问。

不推荐应用程序使用。使用加密备份时,具有此属性的项目会迁移到新设备。

在 iOS 4.0 及更高版本中可用。

kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly

钥匙串中的数据只有在设备解锁时才能访问。只有在设备上设置了密码后才可用。

对于仅需要在应用程序处于前台时可访问的项目,建议使用此方法。具有此属性的项目永远不会迁移到新设备。将备份恢复到新设备后,这些项目就会丢失。在没有密码的设备上,任何项目都不能存储在此 class 中。禁用设备密码会导致此 class 中的所有项目被删除。

在 iOS 8.0 及更高版本中可用。

kSecAttrAccessibleAlwaysThisDeviceOnly

无论设备是否被锁定,钥匙串项中的数据始终可以访问。

不推荐应用程序使用。具有此属性的项目不会迁移到新设备。因此,从不同设备的备份恢复后,这些项目将不存在。

在 iOS 4.0 及更高版本中可用。

kSecAttrAccessibleWhenUnlocked

只有在用户解锁设备时才能访问钥匙串项中的数据。

对于需要仅在应用程序处于前台时才可访问的项目,建议使用此选项。使用加密备份时,具有此属性的项目会迁移到新设备。

这是在未明确设置可访问性常量的情况下添加的钥匙串项的默认值。

在 iOS 4.0 及更高版本中可用。

kSecAttrAccessibleWhenUnlockedThisDeviceOnly

只有在用户解锁设备时才能访问钥匙串项中的数据。

对于需要仅在应用程序处于前台时才可访问的项目,建议使用此设置。具有此属性的项目不会迁移到新设备。因此,从不同设备的备份恢复后,这些项目将不存在。

在 iOS 4.0 及更高版本中可用。