是否可以检测到 iOS 设备上的密码何时被修改?

Posted

技术标签:

【中文标题】是否可以检测到 iOS 设备上的密码何时被修改?【英文标题】:Is it possible to detect when the passcode on an iOS device is modified? 【发布时间】:2020-02-27 07:28:06 【问题描述】:

例如:我有一个使用 FaceID 登录的应用程序,密码是“1111”。 当我将密码更改为“2222”并重新启动应用程序时,它会检测到我的密码被修改并自动退出应用程序。

那么有可能做到吗?

【问题讨论】:

【参考方案1】:

我想你可以通过evaluatedPolicyDomainState获得这些信息

可用于与该属性返回的其他值进行比较,判断授权数据库是否已更新

代码示例:

斯威夫特

let localAuthContext = LAContext()
if localAuthContext.canEvaluatePolicy(LAPolicyDeviceOwnerAuthenticationWithBiometrics, error: error) 
    if oldBiometryData != nil && localAuthContext.evaluatedPolicyDomainState != oldBiometryData 
         changed = true
    

目标-C

LAContext *localAuthenticationContext = [LAContext new];
if ([localAuthenticationContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) 
    if (oldBiometryData != nil && ![localAuthenticationContext.evaluatedPolicyDomainState isEqualToData:oldBiometryData]) 
        changed = YES;
    

使用 oldBiometryData 之前存储在应用中的生物特征数据。

【讨论】:

以上是关于是否可以检测到 iOS 设备上的密码何时被修改?的主要内容,如果未能解决你的问题,请参考以下文章

Windows Mobile 设备是不是可以检测到它何时停靠?

如何在 iOS 6+ 上检测用户何时强制隐藏 iPad 上的键盘

如何以正确的方式检测 Android 设备?

如何检测套接字连接何时丢失?

从主屏幕检测密码锁定状态

touchesEnded 在设备改变方向后没有被调用