我在React-Native
应用程序中使用Google CoreAR package来支持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
,这就是为什么其他部分的代码没有运行。你们能帮我一下吗?谢谢。
1条答案
按热度按时间1tu0hz3e1#
我找到了这个问题的解决方案。
ArCoreApk.Availability
有一些可以使用的方法。你可以在documentation中找到这些方法。方法ArCoreApk.Availability
返回SUPPORTED_INSTALLED
或SUPPORTED_NOT_INSTALLED
,这取决于设备支持。因此,基于这个返回值,我们可以做一些事情。我就喜欢这样。