更新记录
1.0.2(2025-10-02)
1.0.2(2024-10-02)
新增功能
- 支持获取鸿蒙系统设备标识符(AAID、OAID、ODID)
- 自动权限检查和申请机制
- 同步和异步获取方式
- 设备ID缓存机制
- 完整的错误处理和用户提示
技术特性
- 完整的权限管理流程
- 与原生 HarmonyOS 应用一致的权限申请体验
- 支持设备能力检查
- 优化的性能和用户体验
API 接口
getDeviceIds()- 获取所有设备IDgetAAID()- 获取广告标识符getOAID()- 获取开放匿名设备标识符getODID()- 获取开放设备标识符checkTrackingPermission()- 检查权限状态requestTrackingPermission()- 申请权限initDeviceIds()- 初始化设备ID缓存getDeviceIdsSync()- 同步获取设备ID
平台支持
- HarmonyOS ✅
- Android ❌
- iOS ❌
1.0.0(2025-10-01)
首发
平台兼容性
uni-app(4.19)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 | 鸿蒙插件版本 |
|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | 12 | 1.0.2 |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - | - | - |
uni-app x(4.19)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| - | - | - | - | - | - |
abc-device
鸿蒙系统设备标识符获取插件,支持获取 AAID、OAID、ODID。
功能特性
- ✅ AAID 获取 - 广告标识符
- ✅ OAID 获取 - 开放匿名设备标识符(需要权限)
- ✅ ODID 获取 - 开放设备标识符
- ✅ 自动权限管理 - 自动检查和申请 APP_TRACKING_CONSENT 权限
- ✅ 同步/异步支持 - 支持同步和异步获取方式
- ✅ 缓存机制 - 优化性能,减少重复获取
平台支持
| 平台 | 支持状态 |
|---|---|
| HarmonyOS | ✅ 支持 |
| Android | ❌ 不支持 |
| iOS | ❌ 不支持 |
安装使用
1. 权限配置
在 harmony-configs/entry/src/main/module.json5 中添加权限声明:
{
"requestPermissions": [
{
"name": "ohos.permission.APP_TRACKING_CONSENT",
"reason": "$string:permission_reason_tracking",
"usedScene": {
"abilities": ["EntryAbility"],
"when": "inuse"
}
}
]
}
2. 基本使用
// #ifdef APP-HARMONY
import {
getDeviceIds,
getAAID,
getOAID,
getODID,
checkTrackingPermission
} from '@/uni_modules/abc-device'
// #endif
export default {
async mounted() {
// #ifdef APP-HARMONY
try {
// 获取所有设备ID
const deviceIds = await getDeviceIds()
console.log('设备信息:', deviceIds)
// 单独获取OAID(自动处理权限)
const oaid = await getOAID()
console.log('OAID:', oaid)
} catch (error) {
console.error('获取失败:', error.message)
if (error.message.includes('权限')) {
// 提示用户开启权限
uni.showModal({
title: '权限提示',
content: '请在系统设置中开启权限:设置 -> 隐私 -> 广告 -> 允许应用请求跟踪',
showCancel: false
})
}
}
// #endif
}
}
3. 权限管理
// 检查权限状态
const permissionStatus = await checkTrackingPermission()
if (!permissionStatus.granted) {
console.log('权限未授权,需要用户手动开启')
}
// 手动申请权限
import { requestTrackingPermission } from '@/uni_modules/abc-device'
const granted = await requestTrackingPermission()
4. 同步获取(推荐在应用启动后使用)
import { initDeviceIds, getDeviceIdsSync } from '@/uni_modules/abc-device'
// 应用启动时初始化
await initDeviceIds()
// 后续可以同步获取(从缓存)
const deviceIds = getDeviceIdsSync()
console.log('同步获取:', deviceIds)
API 文档
getDeviceIds()
获取所有设备标识符
返回值: Promise<DeviceIdInfo>
interface DeviceIdInfo {
aaid?: string; // 广告标识符
oaid?: string; // 开放匿名设备标识符
odid?: string; // 开放设备标识符
error?: string; // 错误信息
}
getAAID()
获取广告标识符
返回值: Promise<string>
getOAID()
获取开放匿名设备标识符(自动处理权限)
返回值: Promise<string>
注意: 需要 ohos.permission.APP_TRACKING_CONSENT 权限
getODID()
获取开放设备标识符
返回值: string
checkTrackingPermission()
检查广告跟踪权限状态
返回值: Promise<PermissionStatus>
interface PermissionStatus {
granted: boolean; // 是否已授权
shouldShowRationale: boolean; // 是否需要显示权限说明
}
requestTrackingPermission()
请求广告跟踪权限
返回值: Promise<boolean> - 是否授权成功
权限设置指引
如果自动权限申请失败,用户需要手动在系统设置中开启:
设置 → 隐私 → 广告 → 允许应用请求跟踪
注意事项
- 权限敏感性: APP_TRACKING_CONSENT 是用户隐私敏感权限,用户可能拒绝授权
- 设备兼容性: 部分设备可能不支持 OAID
- 权限持久性: 用户可以随时在系统设置中撤销权限
- 错误处理: 建议在业务代码中妥善处理权限被拒绝的情况
更新日志
v1.0.0
- 支持获取 AAID、OAID、ODID
- 自动权限管理
- 同步/异步获取支持
- 缓存机制优化
许可证
MIT License

收藏人数:
购买源码授权版(
试用
赞赏(0)
下载 2
赞赏 0
下载 11032225
赞赏 1800
赞赏
京公网安备:11010802035340号