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+ 空安全):

cke_431.png

执行 flutter pub get 安装依赖。

2. 平台权限配置(关键)

不同平台获取设备 ID 需配置对应权限,否则会获取失败或触发隐私合规问题:

(1)iOS 配置(info.plist)

  • 获取 IDFV(无需权限):无需额外配置;
  • 获取 IDFA(广告标识符,需用户授权):在 ios/Runner/Info.plist 中添加: cke_2126.png

(2)Android 配置(AndroidManifest.xml)

  • 获取 Android ID/IMEI 等:无需额外权限(Android 10+ 限制获取 IMEI,优先用 Android ID);
  • 若需获取网络相关标识:添加网络权限(可选): cke_4140.png

(3)鸿蒙配置

  • device_info_plus 对鸿蒙的适配需依赖最新版插件,无需额外权限,直接获取鸿蒙设备标识即可。

二、核心代码:获取多平台设备 ID

1. 基础用法(区分平台获取唯一 ID)

cke_10329.png

cke_11663.png

三、进阶方案:生成跨平台统一设备 ID

若需一套逻辑适配所有平台,可基于设备硬件信息生成唯一标识(避免平台差异):

cke_13993.png

总结

  1. Flutter 获取设备 ID 优先用 device_info_plus 插件,区分平台获取对应标识(安卓用 Android ID、iOS 用 IDFV、鸿蒙用 deviceId);
  2. iOS 获取 IDFA 需申请 AppTrackingTransparency 权限,安卓避免获取 IMEI 等敏感标识;
  3. 跨平台统一标识可基于设备信息哈希生成,Web 端用 UUID + 本地存储;
  4. 务必遵守各平台隐私合规要求,避免应用审核失败。

更多关于HarmonyOS鸿蒙Next Flutter Tips 如何在 Flutter 中获取设备 ID的实战教程也可以访问 https://www.itying.com/category-92-b0.html

6 回复

device_info_plus有适配鸿蒙吗瞎说呢吧

更多关于HarmonyOS鸿蒙Next Flutter Tips 如何在 Flutter 中获取设备 ID的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


社区版

在HarmonyOS Next的Flutter中,获取设备ID可通过Platform Channel调用鸿蒙系统API,如@ohos.device.info获取udidoaid。也可尝试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(本地随机生成后持久化存储)实现业务层的设备唯一性。需规避直接使用硬件序列号等敏感标识,符合鸿蒙隐私规范。

回到顶部