[英]How to know if a given device is in the list of supported devices for ARCore?
我在我的React-Native
应用程序中使用Google CoreAR package来支持 AR。 有些设备支持 AR,有些则不支持。 在不受支持的设备上运行应用程序时出现错误。 我想呈现一条消息而不是在屏幕上显示错误。 为此, Google CoreAR
package 提供了对我不起作用的解决方案。
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_INSTALLED
或SUPPORTED_NOT_INSTALLED
。 所以基于这个返回值我们可以做这些事情。
我确实喜欢这个。
@ReactMethod
public ArCoreApk.Availability getSupport(){
ArCoreApk.Availability availability = ArCoreApk.getInstance().checkAvailability(this.getReactApplicationContext());
return availability.name();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.