美文网首页
获取Android设备唯一标识方案汇总(稳妥篇)

获取Android设备唯一标识方案汇总(稳妥篇)

作者: AlvinShen | 来源:发表于2019-01-22 14:15 被阅读0次

    项目中遇到了一个需求,需要获取Android设备的唯一标识

    查阅了百度、Google前几页的主流做法,发现并没有100%完美的方案,所以只能吸收各家的优势,汇总用到自己的项目中。

    主流做法是,获取系统的某些信息,作为设备的唯一标识。

    以下是不同的方案和存在的不足:

    1.Build.SERIAL: 硬件序列号,可能重复,亲身经历过...

    2.ANDROID_ID: 随机生成,出厂或者root后可能会变,可能会生成相同的9774d56d682e549c、可能为null。

    3.硬件信息:两个相同型号的手机可能一样。升级后也可能会变。

    4.IMEI:平板没有。6.0以上需要权限,为了一个标识去让用户同意一个权限...

    5.InstallationID: 重新安装会变化

    6.MAC地址:可能会变

    7.随机生成一个ID,存起来:可能会被用户清理掉缓存

    这些方案主要存在两个问题

    1.可能重复

    2.可能会变

    最终采用方案

    1.标识内容采用:Build.SERIAL+ANDROID_ID+硬件信息+MAC地址,进行加密生成一个32位标识

    2.缓存:SharePreferences缓存 + SD Card缓存(使用隐藏文件)。

    缓存目的:防止这些系统信息万一变了。而SD Card缓存是为了防止用户卸载重装APP后,缓存被清掉了。

    最极端不幸的情况:

    SharePreferences被用户清掉了 ,并且 SD Card的(隐藏)缓存文件被用户发现并清掉 了,并且 标识采用的四个系统信息还变了....

    才可能出现标识变了,但可以说概率非常非常小了。

    (代码晚点贴上)

    原创文章,

    觉得有用的不妨点个赞~

    参考:

    Android 设备唯一标识(多种实现方案)https://mp.weixin.qq.com/s/99eQ1_9wzYYByNTIrzOVfA

                                                                                    

    相关文章

      网友评论

          本文标题:获取Android设备唯一标识方案汇总(稳妥篇)

          本文链接:https://www.haomeiwen.com/subject/fndljqtx.html