uni-app 华为荣耀50无法获取oaid

uni-app 华为荣耀50无法获取oaid

示例代码:

plus.device.getOAID({ success: (e) => { console.log(e) }, fail: (e) => { console.log(e) } })


## 操作步骤:

华为荣耀50,`plus.device.getOAID`进入了fail,无法获取oaid

## 预期结果:

华为荣耀50,获取到oaid

## 实际结果:

进入fail,输出结果

{ “code”: 401, “message”: “not support” }


## bug描述:

华为荣耀50,`plus.device.getOAID`进入了fail,无法获取oaid

更多关于uni-app 华为荣耀50无法获取oaid的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

这个需要升级oaid sdk,看起来官方不愿意升级。群里反馈爱答不理的。你就慢慢等吧

更多关于uni-app 华为荣耀50无法获取oaid的实战教程也可以访问 https://www.itying.com/category-93-b0.html


什么时候能解决?

在华为荣耀50上出现plus.device.getOAID返回{code: 401, message: "not support"},通常是由于设备系统或硬件限制导致OAID功能不可用。以下是可能的原因和解决方案:

  1. 系统版本限制:部分华为/荣耀设备在特定系统版本(如基于Android 10的Magic UI 4.0及以上)中可能对OAID获取有更严格的权限控制。请检查设备系统是否为最新版本,并尝试升级系统。

  2. 设备未开启广告标识符:进入设备的设置 > 华为帐号 > 隐私中心 > 广告与隐私,确保“限制广告跟踪”选项未开启(若开启则OAID可能被禁用)。部分机型路径可能略有差异。

  3. HMS Core版本问题:OAID依赖华为HMS Core服务。请到华为应用市场更新HMS Core至最新版本(建议不低于5.0.0)。

  4. uni-app原生模块兼容性

    • 确认项目使用的是最新版HBuilderX(3.6+)和uni-app原生模块。
    • manifest.json中检查是否已正确配置OAID模块(App模块权限需勾选“OAID”)。
  5. 备用方案:若上述方法无效,可尝试以下代码适配,通过plus.runtime.OS判断系统并降级使用其他设备标识:

    if (plus.os.name === 'Android') {
      // 尝试获取OAID,失败时使用其他标识
      plus.device.getOAID({
        success: (e) => console.log('OAID:', e),
        fail: (e) => {
          console.log('OAID获取失败,使用IMEI备用方案');
          // 降级获取IMEI(需android.permission.READ_PHONE_STATE权限)
          plus.device.getInfo({
            success: (info) => console.log('IMEI:', info.imei)
          });
        }
      });
    }
回到顶部