ios - 如何以编程方式检查 iPhone/iPad 设备是否有原深感摄像头?
问题描述
我正在开发一个 3D 扫描应用程序,并创建了下面的测试扩展程序,以检查我的用户设备是否具有 TrueDepth 相机。目前,我的应用程序中有一个问题,我必须不断更改Apple 文档中的兼容设备列表,并不断从此处更新反射开关盒。
static let hasTrueDepthCamera: Bool = {
let authContext = LAContext()
let _ = authContext.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: nil)
return authContext.biometryType == LABiometryType.faceID;
}()
我想知道即使用户的 FaceId 没有在他们的设置中设置,扩展是否会起作用,还是会返回 false?不幸的是,我无法在手机上对其进行测试,因为它会从我的账户钱包中删除所有卡。
解决方案
检测设备是否具有TrueDepth摄像头的一种可能方法是使用ARkit 的 ARFaceTrackingConfiguration
. 您可以使用以下代码来检测设备是否支持面部跟踪。
guard ARFaceTrackingConfiguration.isSupported else {
fatalError("Error: This device model does not support face tracking")
}
推荐阅读
- python - 绘制 LSTM 会导致时间序列和逆标定器错误
- python - 使用 Python Selenium 抓取文本:无法找到真正存在的元素
- java - 线程“主”java.lang.NoClassDefFoundError 中的异常:org/bouncycastle/cms/Recipient
- typescript - 拖放列后保存数据
- java - 使用 Java 反射的手动反序列化方法
- c# - 如何在列表中组合两种不同类型的评论?
- java - 在 Java GUI 应用程序中加载的地图占据整个屏幕
- python - PyQt5:为什么我的 QGraphicsVideoItem 播放后消失?是否可以在最后一帧暂停 QMediaPlayer?
- ms-access-2016 - 运行时错误“3078”:Microsoft Access 数据库引擎找不到输入表
- flutter - Flutter graphql缓存更新只工作一次