HarmonyOS 鸿蒙Next怎么获取或生成设备唯一码?

发布于 1周前 作者 caililin 来自 鸿蒙OS

HarmonyOS 鸿蒙Next怎么获取或生成设备唯一码?

由于项目中需要确定设备唯一性,但是由于隐私问题,不要求永久唯一,但是保证安装期间唯一也可以,怎么获取这样的唯一值?除开UUID的方式,Android有移动安全联盟那个OaId可以获取使用,鸿蒙有类似的吗?
 

4 回复
避免使用IMEI和序列号等永久性的标识符,尽量使用可以重置的标识符,如:

– 分布式场景下,系统提供了NetworkID和DVID作为设备标识符。

– 广告业务场景下,建议使用OAID。

– 基于应用的分析,建议使用ODID和AAID。

– 其他需要唯一标识符的场景下,可以使用UUID接口 util.randomUUID 生成。

当前可提供的设备匿名标识符包含OAID和AAID,不提供卸载重装不变的设备唯一标识符,对标iOS的体验可以参考keychain使用华为的asset store kit能力实现;

Asset Store Kit实现参考文档:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/asset-store-kit-overview-V5

更多关于HarmonyOS 鸿蒙Next怎么获取或生成设备唯一码?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


【HarmonyOS NEXT】获取卸载APP后不变的设备ID

https://juejin.cn/post/7368777511952990234

try {
      // 使用Promise回调方式获取OAID
      identifier.getOAID().then((data: string) => {
        oaid = data;
        console.info('testTag', '%{public}s'+'Succeeded in getting adsIdentifierInfo by promise');
        return oaid
      }).catch((error: BusinessError) => {
        console.error('testTag', '%{public}s'+`Failed to get adsIdentifierInfo, code: ${error.code}, message: ${error.message}`);
      })
    } catch (error) {
      console.error('testTag', '%{public}s'+`Catch err, code: ${error.code}, message: ${error.message}`);
    }

这样试试

在HarmonyOS 鸿蒙Next系统中,获取或生成设备唯一码的方法主要包括以下几种:

  1. UDID:设备的唯一识别码,数据长度为65字节,但仅限系统应用使用,一般开发者无法直接获取,需要权限ohos.permission.sec.ACCESS_UDID。
  2. AAID:Android Advertising ID,应用匿名标识符,主要用于应用推送,但卸载APP或恢复设备出厂设置后,AAID会发生变化。
  3. OAID:Open Anonymous ID,开放匿名设备标识符,同一台设备上不同的App获取到的OAID值一样,但用户关闭跟踪开关后,应用仅能获取到全0的OAID,且需要申请ohos.permission.APP_TRACKING_CONSENT权限。
  4. ODID:开发者匿名设备标识符,同一设备上同一个开发者的应用全部卸载后重新安装时,ODID会发生变化。

此外,对于跨设备或服务跟踪,推荐使用OAuth、OpenID等用户授权机制。如果需要在应用内跟踪设备,可以考虑生成安装ID(首次安装时生成并存储),用于跟踪应用安装而非设备。或者,利用HarmonyOS的分布式系统能力进行设备间的识别和交互。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部