设备标识常见问题

本文将 Android 常见问题及解决方法整理如下:

utdid 不变和变化的具体条件是什么

解答

  • 手机系统或 App 重启

    状态/说明

    无 SD Card 权限

    有 SD Card 权限

    utdid 状态

    不变

    不变

  • 删除 App 重新安装

    状态/说明

    无 SD Card 权限

    有 SD Card 权限

    utdid 状态

    变化

    不变

  • 设备双清,SD Card 数据被清除,重新安装

    状态/说明

    无 SD Card 权限

    有 SD Card 权限

    utdid 状态

    变化

    变化

杀进程后 utdid 发生了变化

原因分析

  1. utdid 是应用软 ID,每次启动时都会取应用外的 utdid 和应用内的 utdid 进行比对, 并使用生成时间比较早的 ID。

  2. 首次安装时,没有外存储权限,所以无法获得应用外的 utdid,而且应用内又不存在 utdid,于是会生成一个 utdid。详情请参见 获取设备标识

  3. 当应用授权后,再次启动时,由于第 1 点中的机制,会用应用外的 utdid 覆盖应用内的 utdid,导致 utdid 发生变化。

解决方法

  1. 确保 utdid4all 的版本号不小于 1.1.5.3,因为旧版本与高版本的 Android 存在兼容问题。

  2. 该问题只出现在首次安装应用时,当外存储权限变化时,再次启动 utdid 就不会变化了。

说明

Android 6.0 以后,部分手机需要在弹出外存储授权页,点确定以后才能获得外存储权限,仅声明是无法获得的。

Android Q 以后的设备 ID 不变的问题

随着设备权限越来越严格,utdid 已经很难保证设备统一、固定不变。如果遇到需要强调设备 ID 不变的场景,则需要使用其它获取 ID 的方案。