HarmonyOS鸿蒙Next中如何在不申请多余权限的前提下唯一标识一台设备?
HarmonyOS鸿蒙Next中如何在不申请多余权限的前提下唯一标识一台设备? 我想要唯一标识一台设备, 用以记录唯一设备上的唯一用户.
想要尝试在 API deviceInfo 查找一些蛛丝马迹, 组合一些信息生成唯一码.
唯二能够起到类似作用的是 UDID 和 ODID. 可以前者需要申请权限, 后者会在设备重启之后重新生成.
所以想咨询一下是否有大佬给出一些参考?
参考设备唯一标识使用 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
,而无需申请额外权限。具体步骤如下:
-
导入相关模块:
import ohos.app.Context; import ohos.device.devicemanager.DeviceIdManager;
-
获取
deviceId
:Context context = ...; // 获取当前应用的Context String deviceId = DeviceIdManager.getDeviceId(context);
deviceId
是系统自动生成的唯一标识,无需申请权限,且保证在同一设备上的不同应用之间保持一致性。