HarmonyOS鸿蒙Next Flutter Tips 如何在 Flutter 中获取设备 ID
HarmonyOS鸿蒙Next Flutter Tips 如何在 Flutter 中获取设备 ID Flutter 中获取设备 ID 主要依赖 device_info_plus 官方插件(替代已废弃的 device_info),该插件支持多平台,能获取不同系统的设备唯一标识;需注意不同平台的标识类型、权限要求不同,且需规避隐私合规风险。
一、前置准备:引入插件
1. 添加依赖
在 pubspec.yaml 中添加最新版 device_info_plus(适配 Flutter 3.0+ 空安全):

执行 flutter pub get 安装依赖。
2. 平台权限配置(关键)
不同平台获取设备 ID 需配置对应权限,否则会获取失败或触发隐私合规问题:
(1)iOS 配置(info.plist)
- 获取 IDFV(无需权限):无需额外配置;
- 获取 IDFA(广告标识符,需用户授权):在
ios/Runner/Info.plist中添加:
(2)Android 配置(AndroidManifest.xml)
- 获取 Android ID/IMEI 等:无需额外权限(Android 10+ 限制获取 IMEI,优先用 Android ID);
- 若需获取网络相关标识:添加网络权限(可选):

(3)鸿蒙配置
device_info_plus对鸿蒙的适配需依赖最新版插件,无需额外权限,直接获取鸿蒙设备标识即可。
二、核心代码:获取多平台设备 ID
1. 基础用法(区分平台获取唯一 ID)


三、进阶方案:生成跨平台统一设备 ID
若需一套逻辑适配所有平台,可基于设备硬件信息生成唯一标识(避免平台差异):

总结
- Flutter 获取设备 ID 优先用
device_info_plus插件,区分平台获取对应标识(安卓用 Android ID、iOS 用 IDFV、鸿蒙用 deviceId); - iOS 获取 IDFA 需申请
AppTrackingTransparency权限,安卓避免获取 IMEI 等敏感标识; - 跨平台统一标识可基于设备信息哈希生成,Web 端用 UUID + 本地存储;
- 务必遵守各平台隐私合规要求,避免应用审核失败。
更多关于HarmonyOS鸿蒙Next Flutter Tips 如何在 Flutter 中获取设备 ID的实战教程也可以访问 https://www.itying.com/category-92-b0.html
device_info_plus有适配鸿蒙吗瞎说呢吧
更多关于HarmonyOS鸿蒙Next Flutter Tips 如何在 Flutter 中获取设备 ID的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
社区版
666
学习
在HarmonyOS Next的Flutter中,获取设备ID可通过Platform Channel调用鸿蒙系统API,如@ohos.device.info获取udid或oaid。也可尝试device_info_plus插件(需确认版本支持)。注意在module.json5中声明ohos.permission.GET_DEVICEID权限。,
在 HarmonyOS Next 中,Flutter 获取设备 ID 需注意:device_info_plus 插件在 OpenHarmony 平台返回的标识并非传统 Android ID 或序列号,而是 ODID(OpenHarmony 设备标识符),通过 ohosDeviceInfo.data.odid 获取。该标识符默认开启,无需额外权限申请。
由于 ODID 在恢复出厂设置或系统升级后可能重置,建议结合应用 GUID(本地随机生成后持久化存储)实现业务层的设备唯一性。需规避直接使用硬件序列号等敏感标识,符合鸿蒙隐私规范。

