浅谈移动端设备标识码:DeviceID、IMEI、IDFA、UDID和UUID

简介: 场景 : 客户提出一个问题就是把用户的登录记录和设备绑定到一起,就是每个人都是固定的设备(可能是安全因素吧)。一开始想的是回去设备的IMEI号和用户账号绑定起来,结果发现IMEI不对外开发,只能另寻他法,最后通过获取设备序列号作为唯一标识。

场景 :

客户提出一个问题就是把用户的登录记录和设备绑定到一起,就是每个人都是固定的设备(可能是安全因素吧)。
一开始想的是回去设备的IMEI号和用户账号绑定起来,结果发现IMEI不对外开发,只能另寻他法,最后通过获取设备序列号作为唯一标识。

开始了解可以用什么标识 来用 。

js获取手机唯一标识码

  Device模块管理设备信息,用于获取手机设备的相关信息,如IMEI、IMSI、型号、厂商等。通过plus.device获取设备信息管理对象。
【名词释义】

  • Device ID:设备ID。
  • IMEI:International Mobile Equipment Identity,国际移动设备身份码的缩写。是由15位数字组成的“电子串号”,它与每台手机一一对应,每个IMEI在世界上都是唯一的。
  • IDFA:Identifier For Advertising,iOS独有的广告标识符。
  • model: 设备的型号
  • vendor: 设备的生产厂商
  • UDID:Unique Device Identifier,唯一设备标识码。
  • uuid: 设备的唯一标识
    【上图思维脑图】

2079205_2091cbf203522196

Android设备标识码

device ID。
又叫设备ID。可以用系统提供的TelephonyManager服务来获取,具有唯一性。其中又包括IMEI和MEID/ESN。
IMEI:GSM设备返回的,并且是写在主板上的,重装APP不会改变IMEI。Android 6.0以上系统需要用户授予read_phone_state权限,如果用户拒绝就无法获得。
mac地址:硬件标识符,包括WiFi mac地址和蓝牙mac地址。Android 6.0之后被禁止,若获取则会被判定为有害应用。
MEID/ESN:CDMA设备返回的,一般不使用。
UDID:用来标示设备的唯一性。获取UUID后,写入.so文件生成UDID。即使APP重装,值也不变,除非root手机(普通用户做不到)
UUID:APP重装后会改变。

iOS设备标识码

device ID。
IMEI:iOS 5 之后被禁止。写在主板上,重装APP不会改变。
IDFA:于iOS 6 时面世,可以监控广告效果,同时保证用户设备不被APP追踪的折中方案。可能发生变化,如系统重置、在设置里还原广告标识符。用户可以在设置里打开“限制广告跟踪”。
mac地址:硬件标识符,包括WiFi mac地址和蓝牙mac地址。iOS 7 之后被禁止(同时禁止的还有OpenUDID)。
UDID:用来标示设备的唯一性 。iOS 6 之后被禁止获取系统原生的UDID,但可以通过uuid,写入到钥匙串中,从而获得自定义的UDID(非系统原生),即使用户重装APP,只要每次都取这个钥匙串返回,就是不变的。
UUID:APP重装后会改变。

总结:使用 UDID 最棒

相关文章
|
11月前
|
Web App开发 网络虚拟化 iOS开发
如何获取苹果设备的UDID(iPhone/iPad UDID查询方法)
如何获取苹果设备的UDID(iPhone/iPad UDID查询方法)
|
API
如何获取IMEI号和MEID号
如何获取IMEI号和MEID号
289 0
|
存储 Java Android开发
2022最新手机设备标识码(IMEI、MEID、UDID、UUID、ANDROID_ID、GAID、IDFA等)教程
2022最新手机设备标识码(IMEI、MEID、UDID、UUID、ANDROID_ID、GAID、IDFA等)教程
2022最新手机设备标识码(IMEI、MEID、UDID、UUID、ANDROID_ID、GAID、IDFA等)教程
|
iOS开发
IPhone 获取IMSI序列号
IPhone 获取IMSI序列号
221 0
|
Java API Android开发
iOS上架之android设备uuid、udid使用教程
iOS上架之android设备uuid、udid使用教程
|
存储 Web App开发 JSON
iOS小技能:设备ID除了使用_idfa、_idfv 还可使用其他替代方案(Keychain 存储)
设备信息的获取:除了使用_idfa、_idfv, 还使用sysct 获取cpu信息。
264 0
iOS小技能:设备ID除了使用_idfa、_idfv 还可使用其他替代方案(Keychain 存储)
|
缓存 Swift iOS开发
iOS 蓝牙设备名称缓存问题总结
iOS 蓝牙设备名称缓存问题总结
387 0
|
Android开发
Android 获取手机 Imei 和 DeviceId
从 Android 10 开始,应用必须具有 READ_PRIVILEGED_PHONE_STATE 特许权限才能访问设备的不可重置标识符(包含 IMEI 和序列号)。
1263 0