HarmonyOS鸿蒙Next中如何在不申请多余权限的前提下唯一标识一台设备?

HarmonyOS鸿蒙Next中如何在不申请多余权限的前提下唯一标识一台设备? 我想要唯一标识一台设备, 用以记录唯一设备上的唯一用户.

想要尝试在 API deviceInfo 查找一些蛛丝马迹, 组合一些信息生成唯一码.

唯二能够起到类似作用的是 UDID 和 ODID. 可以前者需要申请权限, 后者会在设备重启之后重新生成.

所以想咨询一下是否有大佬给出一些参考?

3 回复

参考设备唯一标识使用 AAID

AAID 介绍及获取方式参考:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/push-get-aaid-V5

可以配合asset能力使用,asset是一个安全储存空间,把AAID放在asset里,可实现应用卸载AAID不清除的效果,但这种方式只能用于正常的业务诉求,不能用于追踪用户,参考使用:
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-asset-V5

更多关于HarmonyOS鸿蒙Next中如何在不申请多余权限的前提下唯一标识一台设备?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,唯一标识设备可以通过获取设备的deviceId来实现。deviceId是系统为每台设备分配的唯一标识符,无需申请额外权限。开发者可以使用DeviceInfoManager类中的getDeviceId方法来获取。具体代码如下:

import deviceInfo from '@ohos.deviceInfo';

let deviceId = deviceInfo.deviceId;

deviceId在设备生命周期内保持不变,且在设备恢复出厂设置后会发生变化。这种方式不需要申请任何权限,符合在不申请多余权限的前提下唯一标识设备的需求。

在HarmonyOS鸿蒙Next中,可以通过DeviceIdManager获取设备的唯一标识符deviceId,而无需申请额外权限。具体步骤如下:

  1. 导入相关模块:

    import ohos.app.Context;
    import ohos.device.devicemanager.DeviceIdManager;
    
  2. 获取deviceId

    Context context = ...; // 获取当前应用的Context
    String deviceId = DeviceIdManager.getDeviceId(context);
    

deviceId是系统自动生成的唯一标识,无需申请权限,且保证在同一设备上的不同应用之间保持一致性。

回到顶部