如何编程检测iPhone/iPad是否配备TrueDepth相机?Face ID未设置是否影响判断
核心问题解答
你提供的代码不会因为用户未在系统设置中配置Face ID返回错误的false结果,完全可以用来准确判断设备是否搭载TrueDepth相机。
原理说明
LAContext的biometryType属性本质是标记设备硬件本身支持的生物识别类型,和用户是否开启生物识别、是否录入Face ID/触控ID信息没有关联- 你代码中调用
canEvaluatePolicy的作用仅为触发LAContext读取硬件生物识别能力的元数据,哪怕该调用因为用户未配置Face ID返回失败,也不会影响biometryType的正确赋值 - 只要设备本身搭载支持Face ID的TrueDepth相机,无论用户是否配置Face ID功能,
biometryType都会返回LABiometryType.faceID
对比你之前维护兼容设备列表、反射判断机型的方案,这段实现的兼容性和后续维护成本都要低很多,可以直接上线使用。
内容的提问来源于stack exchange,提问作者Saamer
相关产品推荐
相关产品推荐

