更新记录

1.0.0(2026-08-11)

  • 首发 x-idcode
  • 隐私同意门禁 + basic/full 双模式
  • OAID/AndroidID/指纹/环境检测
  • 上游 Android_CN_OAID 4.2.17

平台兼容性

uni-app

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
× × × × × × × × ×
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
× × × × × × × × × × × ×

uni-app x(4.27)

Chrome Safari Android iOS 鸿蒙 微信小程序
× × 5.0 12 × ×

x-idcode

基于开源库 Android_CN_OAID(~2.8k★,Mulan PSL v2)封装的 uni-app x UTS 设备标识插件

本插件明确声明:核心 OAID/AAID 能力来自开源免费的 Android_CN_OAID,并非 MSA 官方闭源 SDK。请在业务侧完成隐私政策同意后再调用。

平台

平台 能力
Android OAID/AAID、AndroidID、PseudoID、GUID、IMEI(受限)、指纹、环境检测
iOS / Web Stub(返回 9030003),避免误用广告标识

差异化

  1. 隐私门禁:未 setPrivacyAgreed({ agreed: true }) 前,任何 ID API 直接失败 9030001
  2. 双模式basic(OAID + AndroidID + fingerprint)/ full(再含 PseudoID、GUID、IMEI)
  3. 设备指纹SHA-256(oaid|androidId|pseudoId) 截断 32 位十六进制
  4. 环境检测:模拟器 / Root / 开发者模式
  5. 内存缓存getIds / getOAID 默认走缓存,forceRefresh: true 强制刷新

依赖(Android)

  • com.github.gzu-liyujiang:Android_CN_OAID:4.2.17
  • 华为 / 荣耀官方 ads-identifier(提升对应机型成功率)
  • Maven:JitPack + Huawei + Honor

API

import {
  setPrivacyAgreed,
  isPrivacyAgreed,
  supportedOAID,
  getIds,
  getOAID,
  getAndroidID,
  getPseudoID,
  getGUID,
  getIMEI,
  getDeviceEnv,
  clearCache
} from '@/uni_modules/x-idcode'

// 1. 用户同意隐私政策后
setPrivacyAgreed({ agreed: true })

// 2. 批量获取(推荐)
getIds({
  mode: 'basic', // 或 'full'
  forceRefresh: false,
  success: (res) => {
    console.log(res.oaid, res.androidId, res.fingerprint)
  },
  fail: (e) => {
    console.error(e.errCode, e.errMsg)
  }
})

// 3. 仅 OAID
getOAID({
  success: (res) => console.log(res.oaid)
})

// 4. 环境
getDeviceEnv({
  success: (res) => console.log(res.isEmulator, res.isRooted, res.isDeveloperMode)
})

错误码

含义
9030001 隐私未同意
9030002 获取失败
9030003 平台不支持
9030004 参数非法

合规与权限

  • 必须在用户同意隐私政策后再调用 setPrivacyAgreed 与任何 ID API。
  • full 模式下 IMEI 仅 Android 10 以下可能有值,且依赖 READ_PHONE_STATE(运行时需自行申请)。
  • 本插件已通过 Manifest 移除上游库自带的 WRITE_SETTINGS / WRITE_EXTERNAL_STORAGE
  • 插件本身不上传任何标识,是否上报由业务决定。

自定义基座

首次或依赖变更后,需在 HBuilderX 制作自定义调试基座,勾选 x-idcode

致谢与许可

  • 上游:gzu-liyujiang/Android_CN_OAID,许可证 Mulan PSL v2
  • 本 UTS 封装示例代码可按仓库约定使用;分发时请保留上游署名与许可证说明

隐私、权限声明

1. 本插件需要申请的系统权限列表:

可选 READ_PHONE_STATE(仅 Android 10 以下获取 IMEI 时需要)。OAID/AndroidID 通常无需额外权限。

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

本插件仅在本地读取设备标识,不上传服务器。是否调用依赖业务侧隐私同意状态。

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。