You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React-Native中ARCore设备支持检测失效问题求助

React Native中Google CoreAR设备兼容性检测失效的解决方法
  • 更新CoreAR依赖版本
    旧版本的CoreAR包兼容性检测逻辑可能存在bug,导致误判。在项目的build.gradle文件中替换为最新稳定版依赖:

    implementation 'com.google.ar:core:1.37.0' // 替换为当前最新稳定版本
    
  • 改用异步检测逻辑
    官方同步的availability.isSupported()存在误判概率,换成异步的Session.checkAvailability()方法,能更精准获取设备AR支持状态:

    // 在自定义React Native原生模块中实现检测方法
    public void checkARSupport(Promise promise) {
        Session.checkAvailability(getReactApplicationContext(), new Session.AvailabilityCallback() {
            @Override
            public void onAvailabilityChecked(Session.Availability availability) {
                promise.resolve(availability.isSupported());
            }
        });
    }
    

    在React Native JS层调用该方法,根据结果处理提示:

    import { NativeModules, Alert } from 'react-native';
    const { ARChecker } = NativeModules;
    
    ARChecker.checkARSupport()
      .then(isSupported => {
        if (!isSupported) {
          Alert.alert('提示', '当前设备不支持AR功能');
        } else {
          // 初始化AR功能流程
        }
      })
      .catch(err => console.error(err));
    
  • 补充ARCore安装状态检测
    部分设备硬件满足要求,但未安装Google Play服务AR模块,也会导致AR功能报错。可额外检测模块安装状态:

    private boolean isARCoreModuleInstalled() {
        PackageManager pm = getReactApplicationContext().getPackageManager();
        try {
            pm.getPackageInfo("com.google.ar.core", PackageManager.GET_ACTIVITIES);
            return true;
        } catch (PackageManager.NameNotFoundException e) {
            return false;
        }
    }
    

    结合异步检测结果,只有当设备支持且ARCore模块已安装时,才启动AR功能,否则统一显示提示。

  • 确认测试设备的真实支持状态
    先在Google官方ARCore设备列表中确认测试设备确实不支持AR,避免因测试设备误判导致问题排查偏差。

内容的提问来源于stack exchange,提问作者rocco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 05:05:36