更新记录
1.0.0(2026-10-28)
1.0.0(2026-10-28)
首次发布。
- 新增 register / getIdCodes / getOAID / isSupported 四个接口
- 支持 OAID(华为、荣耀、小米、OPPO、vivo、三星、联想、魅族、努比亚、华硕、一加、酷派、360、FreeMe)与谷歌 AAID
- 同时返回 IMEI、AndroidID、WidevineID、PseudoID、GUID
- 全部在设备本地读取,插件自身不联网、不上传
平台兼容性
uni-app(3.91)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| √ | √ | × | × | √ | - | 4.4 | × | × |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | × | × | × | × | × | × | × |
zeng-oaid 设备标识
UTS 原生插件,一次调用读取 Android 设备的多种标识,全部在本机读取后回调,不联网、不上传。同一个插件同时支持 uni-app 和 uni-app x。
支持环境
- 平台:仅 Android(不支持 iOS、H5、小程序)
- minSdkVersion:19(Android 4.4)
- uni-app:Vue2 / Vue3,需 HBuilderX 3.91 及以上
- uni-app x:需 HBuilderX 3.9 及以上
- 已内置华为、荣耀广告标识 SDK,并适配小米、OPPO、vivo、三星、联想、魅族、努比亚、华硕、一加、酷派、360、Google 等厂商服务
安装
插件市场页面点击「下载插件并导入 HBuilderX」,选择项目导入,插件会落到 uni_modules/zeng-oaid,manifest.json 无需任何配置。
因为带原生 AAR,真机运行前需要制作自定义调试基座:菜单「运行 → 运行到手机或模拟器 → 制作自定义调试基座」,然后把基座切换为「自定义调试基座」。
API
import { register, getIdCodes, getOAID, isSupported } from '@/uni_modules/zeng-oaid'
| 方法 | 说明 |
|---|---|
register(options) |
注册并预取,先注册再获取。请在用户同意隐私政策后调用。 |
getIdCodes(options) |
读取全部标识,内部异步等待,工作线程执行,不阻塞界面。 |
getOAID(options) |
获取 OAID,Google 设备回落为 AAID。 |
isSupported() |
同步返回当前机型是否支持 OAID。 |
返回结构
{ code: 0, msg: 'register success' }
{
code: 0,
msg: 'getIdCodes success',
data: {
supportedOAID: true, // 当前设备是否支持 OAID / AAID
OAID: '...', // 厂商 OAID
AAID: '...', // Google 广告标识,仅装 GMS 的设备有值
IMEI: '', // Android 10+ 不可读;Android 6~9 需电话权限
AndroidID: '...', // SSAID,恢复出厂会变
WidevineID: '...', // DRM 设备 ID,部分机型可能为空
PseudoID: '...', // 硬件信息拼接的伪 ID,不唯一
GUID: '...' // 应用内生成并持久化,卸载重装会变
}
}
{ code: 0, msg: 'getOAID success', data: 'OAID 或 AAID 字符串' }
读不到 OAID 时 code 为 -1,同时走 fail 回调;getIdCodes 的 fail 里仍然带回其他可用字段。读不到的字段一律是空字符串,不会出现 null。
示例
import { register, getIdCodes, getOAID } from '@/uni_modules/zeng-oaid'
register({
success(res) {
console.log('已注册', res)
}
})
getIdCodes({
success(res) {
console.log('OAID:', res.data.OAID)
console.log('AndroidID:', res.data.AndroidID)
},
fail(res) {
console.log('OAID 读取失败', res.data)
}
})
getOAID({
success(res) {
console.log(res.data)
}
})
uni-app x(.uvue)里需要显式声明参数类型:
import { getIdCodes, GetIdCodesOptions } from '@/uni_modules/zeng-oaid'
getIdCodes({
success: (res) => {
console.log(res.data.OAID)
},
fail: (res) => {
console.log('fail')
}
} as GetIdCodesOptions)
权限与隐私
| 权限 | 用途 |
|---|---|
android.permission.READ_PHONE_STATE |
仅 Android 6~9 读取 IMEI 时使用,不需要 IMEI 可不申请 |
com.google.android.gms.permission.AD_ID |
Google 设备读取 AAID |
com.asus.msa.SupplementaryDID.ACCESS、freemme.permission.msa |
对应厂商 OAID 服务查询 |
插件已在自身 Manifest 声明上述权限和 Android 11+ 所需的 <queries> 包可见性,使用者无需额外配置。所有标识均在本机读取后回调,插件不联网、不采集、不上传。请在用户同意隐私政策后再调用,并在应用隐私政策中说明读取设备标识的用途。
常见问题
模拟器取不到 OAID? 模拟器没有厂商 OAID 服务,属正常现象,请用真机测试。
getIdCodes 很久才返回? OAID/AAID 首次读取要绑定厂商服务,内部最长等待 5 秒。建议先 register,第二次取值会命中缓存,几乎瞬时。
IMEI 为空? Android 10 及以上系统对普通应用永久关闭了 IMEI 读取,任何插件都无法绕过。
国产机型 OAID 为空? 依次排查:① 是否在用户同意隐私政策之后调用;② 是否用了新编译的自定义基座;③ 系统设置里是否关闭了广告标识;④ isSupported() 返回 false 说明机型不在支持列表。
云打包依赖冲突? 本插件把厂商 SDK 打进了 utssdk/app-android/libs/zeng-oaid-bridge.aar。如果项目里另有插件也集成华为/荣耀广告标识 SDK,去掉重复的一份。
需要什么 HBuilderX 版本? uni-app 项目 3.91+,uni-app x 项目 3.9+。
开源声明
厂商协议适配层基于开源项目 Android_CN_OAID(木兰宽松许可证第 2 版)改造,华为、荣耀广告标识 SDK 版权归各自厂商所有。插件包内附 LICENSE-MulanPSL2.txt 与 NOTICE.txt。
更新日志
1.0.0
- 首次发布:支持 OAID、AAID、IMEI、AndroidID、WidevineID、PseudoID、GUID。

收藏人数:
购买普通授权版(
试用
使用 HBuilderX 导入示例项目
赞赏(0)
下载 2
赞赏 0
下载 12723218
赞赏 1958
赞赏
京公网安备:11010802035340号