检查设备当前所在位置的 VPS 是否可用

Geospatial API 结合使用 VPS 和 GPS 数据来生成准确度高的地理空间姿势。该 API 可在设备能够确定其位置的任何位置使用:

  • 在 GPS 准确度较低的区域,例如室内空间和人口密集的城市环境,该 API 将依赖 VPS 覆盖范围来生成高精度姿势。
  • 在几乎或没有高空遮挡物的户外环境中,Geospatial API 或许能够使用可用的 GPS 位置数据来生成高度准确的地理空间姿势。

您可以在 AR 会话开始之前确定 VPS 在给定水平位置的可用性,并使用它来创建更具体的体验,例如呈现“进入 AR”按钮。

启用 ARCore API

您的应用必须启用 ARCore API 才能检查 VPS 可用性。

查看应用中的 VPS 可用性

Geospatial API 可以在设备能够确定其位置的任何位置使用。如果您的 AR 体验取决于 VPS 覆盖范围,则可以使用 AREarthManager.CheckVpsAvailabilityAsync() 获取 VpsAvailabilityPromise,这是一个异步任务,用于检查给定水平位置的 VPS 可用性。 获得 VpsAvailabilityPromise 后,您可以通过轮询来获取其结果。

投票结果

使用 VpsAvailabilityPromise.State 获取 InterruptiblePromise 的状态。有三种不同的状态:

您可以继续查看 VpsAvailabilityPromise.State,直到任务完成为止。

取消InterruptiblePromise

使用 VpsAvailabilityPromise.Cancel() 尝试取消 InterruptiblePromise。由于线程并行处理,取消尝试可能实际上并未成功。

在没有 VPS 覆盖范围的情况下使用 Geospatial API

Geospatial API 也可用于没有 VPS 覆盖的区域。在顶部障碍很少或没有障碍物的户外环境中,GPS 可能足以生成高精度姿势。

后续步骤