我实现了这里描述的密码检测 - Programatically Checking if a Passcode Lock is Set ,但它仅适用于 iOS 8 及更高版本。
应用程序在此行崩溃secRecord.AccessControl = new SecAccessControl (SecAccessible.WhenPasscodeSetThisDeviceOnly);
是否可以在 iOS 7 上以编程方式检查密码状态?
我没有找到任何关于此的信息。
最佳答案
不,你不能。来自文档:
kSecAttrAccessibleAfterFirstUnlock
钥匙串(keychain)项中的数据在重启后无法访问,直到设备被用户解锁一次。
第一次解锁后,数据仍然可以访问,直到下一次重启。对于需要由后台应用程序访问的项目,建议这样做。使用加密备份时,具有此属性的项目会迁移到新设备。
适用于 iOS 4.0 及更高版本。
kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly
钥匙串(keychain)项中的数据在重启后无法访问,直到设备被用户解锁一次。
第一次解锁后,数据仍然可以访问,直到下一次重启。对于需要由后台应用程序访问的项目,建议这样做。具有此属性的项目不会迁移到新设备。因此,从不同设备的备份恢复后,这些项目将不存在。
适用于 iOS 4.0 及更高版本。
kSecAttrAccessibleAlways
无论设备是否被锁定,钥匙串(keychain)项中的数据始终可以访问。
不建议将其用于应用程序。使用加密备份时,具有此属性的项目会迁移到新设备。
适用于 iOS 4.0 及更高版本。
kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly
钥匙串(keychain)中的数据只有在设备解锁时才能访问。只有在设备上设置了密码时才可用。
对于只需要在应用程序处于前台时可访问的项目,建议使用此方法。具有此属性的项目永远不会迁移到新设备。将备份恢复到新设备后,这些项目就会丢失。在没有密码的设备上,任何项目都不能存储在此类中。禁用设备密码会导致删除此类中的所有项目。
适用于 iOS 8.0 及更高版本。
kSecAttrAccessibleAlwaysThisDeviceOnly
无论设备是否被锁定,钥匙串(keychain)项中的数据始终可以访问。
不建议将其用于应用程序。具有此属性的项目不会迁移到新设备。因此,从不同设备的备份恢复后,这些项目将不存在。
适用于 iOS 4.0 及更高版本。
kSecAttrAccessibleWhenUnlocked
钥匙串(keychain)项中的数据只有在用户解锁设备时才能访问。
建议仅当应用程序在前台时才需要访问的项目。使用加密备份时,具有此属性的项目会迁移到新设备。
这是在没有明确设置可访问性常量的情况下添加的钥匙串(keychain)项目的默认值。
适用于 iOS 4.0 及更高版本。
kSecAttrAccessibleWhenUnlockedThisDeviceOnly
钥匙串(keychain)项中的数据只有在用户解锁设备时才能访问。
建议仅当应用程序在前台时才需要访问的项目。具有此属性的项目不会迁移到新设备。因此,从不同设备的备份恢复后,这些项目将不存在。
适用于 iOS 4.0 及更高版本。
关于ios - 以编程方式检查是否在 iOS 7 上设置了密码锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32841929/