请选择 进入手机版 | 继续访问电脑版

雨林木风

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 21|回复: 0

如何唯一的标识一台Android设备?

[复制链接]

9975

主题

9982

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
30542
发表于 2021-1-19 15:33:56 | 显示全部楼层 |阅读模式
  记得长远之前正在一场笔试上有一道问题便是:“何如独一的标识一台Android筑立?”。当时只分明IMEI可能是用来标识一台手机的,因此就恣意填了上去,然后...就没有然后了...这日恰好正在使命中从头遭遇,就拿出来说说看。
  起首说结论咱们事实能不行独一的标识一台Android筑立?很缺憾,目前没有一个很完备的设施不妨治理这个题目。Android开垦者博客的原文是:
  UUID: (Universally Unique Identifier)全体独一标识符,是指正在一台机械上天生的数字,它确保对正在同偶然空中的一齐机械都是独一的。由以下几个人的组合:目今日期和年华(UUID的第一个个人与年华相合,即使你正在天生一个UUID之后,过几秒又天生一个UUID,则第一个个人区别,其余一样),时钟序列,全体独一的IEEE机械识别名(即使有网卡,从网卡得回,没有网卡以其他办法得回)。
  IMEI: (International Mobile Equipment Identity) 是邦际搬动筑立身份码的缩写,邦际搬动配备辨识码,是由15位数字构成的电子串号,它与每台手机逐一对应,并且该码是全全邦独一的。
  MEID:( Mobile Equipment IDentifier )是环球独一的56bit CDMA制式搬动终端标识号。标识号会被烧入终端里,而且不行被删改。可用来对CDMA制式搬动式筑立举行身份识别和跟踪。
  两者的区别正在于:IMEI是手机的身份证,MEID是CDMA制式(电信运营的)的专用身份证;IMEI是15位,MEID是14位。
  依据区别的手机筑立返回IMEI,MEID或者ESN码,可能依据以下代码得回:
  非手机筑立:最入手搭载Android编制都手机筑立,而现正在也涌现了非手机筑立:如平板电脑、电视、音乐播放器等。这些筑立没有通话的硬件功用,编制中也就没有TELEPHONY_SERVICE,自然也就无法通过上面的设施得回DEVICE_ID。
  厂商定制编制中的Bug:少数手机筑立上,因为该达成有缺点,会返回垃圾(这是开垦者博客的原话,没有践诺过)。
  可能运用手机WiFi或蓝牙的MAC所在行动筑立标识,然而并不推选这么做,来由有以下两点:
  硬件范围:并不是一齐的筑立都有WiFi和蓝牙硬件,硬件不存正在自然也就得不到这一音信。
  获取的范围:即使WiFi没有掀开过,是无法获取其Mac所在的;而蓝牙是惟有正在掀开的功夫材干获取到其Mac所在。
  硬件序列,正在Android 2.2 以上可能通过android.os.Build.SERIAL得回序列号。正在极少没有电话功用的筑立会供给,某些手机上也可以供给(因此便是时时会返回Unknown)
  ANDROID_ID是筑立第一次启动时爆发和存储的64bit的一个数,当筑立被wipe后该数重置。
  ANDROID_ID彷佛是获取Device ID的一个好拔取,但它也有缺陷:正在主流厂商临盆的筑立上,有一个很时时的bug,便是每个筑立都邑爆发一样的ANDROID_ID:9774d56d682e549c 。同时刷机,或者重置ANDROID_ID的值都邑变动。
  正在措施安设后第一次运转时天生一个ID,该办法和筑立独一标识不雷同,区别的操纵措施会爆发区别的ID,统一个措施从头安设也会区别。因此这不是筑立的独一ID,然而可能确保每个用户的ID是区别的。 可能说是用来标识每一份操纵措施的独一ID(即Installtion ID),可能用来跟踪操纵的安设数目等(原来便是UUID)。
  通过读取筑立的ROM版本号、厂商名、CPU型号和其他硬件音信来组合出一串15位的号码和筑立硬件序列号行动种子天生UUID。一串15位的号码(批量临盆的筑立每项音信根本一样,因此这一段一样的可以性独特高);硬件序列,正在极少没有电话功用的筑立会供给,某些手机上也可以供给(Devices without telephony are required to report a unique device ID here; some phones may do so also.),因此便是时时会返回Unknown。
  起首通过读取Android_id,行动UUID的种子。若取得Android_Id等于9774d56d682e549c或者 产生毛病则random一个UUID行动备用计划,终末把取得的UUID同时存入内部存储和外部存储。下次运用UUID的功夫优先从外部存储读取,再从背部存储读取,终末正在从头天生,尽可以的确保其稳固性。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

|appname
快速回复 返回顶部 返回列表