UUID和ODID简介

在APP开发过程中,经常需要一些唯一标识符作为留痕使用,HaymonyOS也提供了UUID和ODID来满足类似的工作。

  • UUID:应用卸载重新安装时会重新生成UUID
  • ODID:手机恢复出厂设置或者同一设备上同一个开发者的应用全部卸载后重新安装时会重新生成。

UUID生成规则

调用util.generateRandomUUID方法生成,该方法使用加密安全随机数生成器生成随机的RFC 4122版本4的string类型UUID。调用此函数会生成两个UUID,其中一个UUID进行缓存,一个UUID用于输出,首次调用时,参数是true或false无区别;下次调用时,如果参数是true,依旧缓存上次UUID,并生成新的UUID;如果参数是false,将生成两个UUID,其中一个UUID进行缓存,一个UUID进行输出

ODID生成规则

  • 同一设备上运行的同一个开发者的应用,ODID相同。

  • 同一个设备上不同开发者的应用,ODID不同。

  • 不同设备上同一个开发者的应用,ODID不同。

  • 不同设备上不同开发者的应用,ODID不同。

相关代码

  import { deviceInfo } from '@kit.BasicServicesKit';
  let odid: string = deviceInfo.ODID;
  let uuid:string =  util.generateRandomUUID(true);
  console.info('the value of the deviceInfo odid is :' + odid);
  console.info('the value of the deviceInfo uuid is :' + uuid:string );

输入log如下:

I     the value of the deviceInfo odid is :c1f970f6-123d-84bf-d39a-c93117b2b9c4
I     the value of the deviceInfo uuid is :b267cef1-03ed-4d9a-847f-71a2c3a932c9

使用场景举例

app都有收集crash的功能,可以帮助修复生产问题。在这里我们就可以把ODID设置给HarmonyOS的bug收集插件,代码如下:

 APMS.getInstance().setUserIdentifier(deviceInfo.ODID);

关于crash的收集,详见HarmonyOS(37) APP crash崩溃日志收集插件@hw-agconnect使用指南

参考资料

@ohos.deviceInfo (设备信息)
util.generateRandomUUID
HarmonyOS(37) APP crash崩溃日志收集插件@hw-agconnect使用指南

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐