如何知道给定的设备是否在ARCore支持的设备列表中?




我在我的React-Native应用程序中使用谷歌CoreAR包进行AR支持。有些设备支持AR,有些不支持。当我在不受支持的设备中运行应用程序时,我遇到了错误。我想呈现一个消息,而不是在屏幕上显示错误。对于这个Google CoreAR包提供的解决方案不适合我。

void maybeEnableArButton() {
ArCoreApk.Availability availability = ArCoreApk.getInstance().checkAvailability(this);
if (availability.isTransient()) {
// Continue to query availability at 5Hz while compatibility is checked in the background.
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
maybeEnableArButton();
}
}, 200);
}
if (availability.isSupported()) {
mArButton.setVisibility(View.VISIBLE);
mArButton.setEnabled(true);
} else { // The device is unsupported or unknown.
mArButton.setVisibility(View.INVISIBLE);
mArButton.setEnabled(false);
}
}

上面的代码片段的问题是,availability.isSupported()总是返回true,这就是为什么代码的其他部分没有运行。你们能帮我一下吗?谢谢你。

我找到了解决这个问题的方法。ArCoreApk.Availability有一些可以使用的方法。中可以找到这些方法文档。方法ArCoreApk.Availability根据设备支持返回SUPPORTED_INSTALLEDSUPPORTED_NOT_INSTALLED。因此,基于这个返回值,我们可以做这些事情。

我就是这样做的。

@ReactMethod
public ArCoreApk.Availability getSupport(){
ArCoreApk.Availability availability = ArCoreApk.getInstance().checkAvailability(this.getReactApplicationContext());
return availability.name();
}

相关内容

  • 没有找到相关文章

最新更新