检查 iOS 设备是否在 Swift 中有 LiDAR

Check if iOS device has LiDAR in Swift

在 Swift 中有没有办法检查设备是否有 LiDAR 传感器?不幸的是,我在官方 Apple 纪录片和互联网搜索中都没有找到任何内容。

我当前的解决方法是确定设备类型,如 post 中所述: How to determine the current iPhone/device model?

谢谢

使用此代码:-

import ARKit

let supportLiDAR = ARWorldTrackingConfiguration.supportsSceneReconstruction(.mesh)
guard supportLiDAR else {
    print("LiDAR isn't supported here")
    return
}

场景重建需要配备激光雷达扫描仪的设备,例如第四代iPad Pro。

参考:- https://developer.apple.com/documentation/arkit/arworldtrackingconfiguration/3521377-supportsscenereconstruction

接受的答案很好,这是另一个解决方案:

你可以检查LiDAR深度数据的可用性,我们需要检查我们的设备是否支持这个传感器 并在 ARConfiguration 中启用其标志“.sceneDepth”。

使用这个函数

 func setupARConfiguration() -> ARConfiguration{
    let configuration = ARWorldTrackingConfiguration()
    
    // add specific configurations
    if ARWorldTrackingConfiguration.supportsFrameSemantics(.sceneDepth) {
        configuration.frameSemantics = .sceneDepth
    }else {
        print("Device is not support lidar sensor")

    }
    
    return configuration
}

来自 Apple 文档:

在尝试对您的应用配置启用框架语义之前调用此函数。例如,如果您在 ARWorldTrackingConfiguration 上调用 supportsFrameSemantic(.sceneDepth),则该函数 returns 在支持 LiDAR 扫描仪深度缓冲区的设备上为真。

参考: https://developer.apple.com/documentation/arkit/arconfiguration/3089122-supportsframesemantics