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

雨林木风

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 19|回复: 0

极光推送的设备唯一性标识RegistrationID

[复制链接]

8499

主题

8506

帖子

2万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
26041
发表于 2020-12-28 05:50:56 | 显示全部楼层 |阅读模式
  迩来做的一个项目中必要用到Android装备独一码(UUID)来标识一台装备,
  先总结少许搜刮得知的各类值的坏处,再说说末了采用MAC地方的治理计划吧。
  正在而今没掀开WiFi的景况下获博得到的MAC地方值为空,尽管正在推广这段代码前是有掀开过WiFi,而推广这段代码时WiFi形态是闭上的,也不行获取到MAC地方。
  这种设施固然能正在而今Wifi形态为闭上的景况下获取到MAC地方,但条件是正在手机开机后要掀开过一次Wifi,假使正在某次开机后没掀开过Wifi就挪用这段代码,获取地方也是为空。
  网上给出的注脚是:WiFi的Mac address是一个被动资讯。平常正在开机后,不会主动上报到体例裡。要待WiFi硬件启动后,才会把相闭Mac address材料纪录入体例去。
  IMEI号(邦际转移装备身份码)、IMSI号(邦际转移装备识别码)这两个是有电话功用的转移装备才具有,也即是说某些没有电话功用的平板是获取不到IMEI和IMSI号的。且正在某些装备上getDeviceId()会返回垃圾数据。
  ANDROID_ID 是装备初度启动时由体例随机天生的一串64位的十六进制数字。
  ①.装备刷机wipe数据或复兴出厂筑立时ANDROID_ID值会被重置。
  ③.某些厂商定制的体例大概会导致分别的装备形成无别的ANDROID_ID。
  从Android 2.3开端,通过android.os.Build.SERIAL设施可获取到一个序列号。没有电话功用的装备也都必要上给出此独一的序列号。
  一种斗劲折衷的方法,正在获取MAC地方之前先判决而今WiFi形态,若开启了Wifi,则直接获取MAC地方,若没开启Wifi,则用代码开启Wifi,然后立地闭上,再获取MAC地方。
  目前此设施测试告成,无论正在哪种形态下都能精确博得装备的MAC地方(包含开机后未启动过Wifi的形态下),且正在未开启Wifi的形态下,用代码开启Wifi并立地闭上,经过极短,不会影响到用户操作。
  关于 App 云平台体例,怎样独一地识别转移装备口角常紧急的。不然,每次用户正在装备上卸载掉操纵再从新装配,后端体例只可把这个用户算作一个全新的用户了。
  Android 上识别装备的独一性,由于这个圈太乱,于是装备自身的任何标识都是无法直接用作装备独一标识的。iOS 是体例强力局部被独一识另外,目前独一可能个人满意条目是 IDFA,但必要你的 App 自身真实嵌入了广告。
  良众开拓者运用极光推送时,都有这个疑义:极光推送是怎样来做装备的独一性识另外。本文解析极光推送怎样尽大概地来独一识别装备。
  极光推送对装配正在装备上的 App 运用 RegistrationID 举动标识。极光推送要『尽大概』确保装备的独一性,即是要使得 RegistrationID 尽大概独一。
  有了这个标识,App 编程可能把这个 RegistrationID 存在到自身的操纵效劳器上,然后就可能按照 RegistrationID 来向装备推送动静或者通告。
  Android 上由于邦内存正在大方盗窟装备的起因,寻常的 IMEI, Mac Address, AndroidID 这些可能琢磨用作独一标识的值,都是弗成能用的,由于这些值正在一批装备中大概都是统一个值。
  简直的逻辑细节,也是按照实践运转景况,以及采集到的反应接续调动的,大大批逻辑可正在效劳器端调动。
  鉴于 iOS 体例打算上局部装备独一标识,于是极光平昔运用 Device Token 举动标识,也由于极光推送自身即是必要 Device Token 这个值才大概运作的。
  iOS 9 版本之后,每次卸载后重装都市导致 Device Token 改观,于是关于极光后台来说,都只可被识别为新用户。
  极光 SDK 新版本扩展了 IDFA 选项,正在集成初始化 SDK 时可选把 IDFA 这个值筑立进来,如许极光后台就优先按照 IDFA 值来识别用户,从有必定的大概性操纵被卸载后重装还能识别回老装备。
  IDFA 是广告标识符,是 iOS 特意为广告跟踪独一地识别用户而打算的。正在 iOS 装备上,装备 - 隐私 - 广告这个页面,有一个筑立项:局部广告跟踪。默认是未选中形态的,即是闭上形态,是不局部的。用户可能选中,从而局部广告跟踪。筑立项以外尚有一个按钮:还原广告标识符…。假使用户点击了这个按钮,则 IDFA 值会改观。
  默认的景况下,没有局部广告跟踪,可能取到 IDFA 这个值。而且用户未点击『还原广告标识』时,这个值是不会变的。如许就到达了独一地标识装备、跟踪到用户的目的。
  然而,然而,请必定慎重,IDFA 并不是必定可能启用的,是必要你的 App 真实有广告功用才可能用的,不然 Apple 正在上架审核时有大概浮现从而拒绝上架。
  Android 上有写 Settings 的权限,是可能写数据到 Settings 里边的,相当于被算作一个长期存储点了。 外部存储平常指 SDCard,现正在越来越众手机直接办机自带了,相同于 iPhone 的作法。
  这 2 个点假使数据都被反对了,就真实通过当地 DeviceID 存储无法确以为独一装备了。然而,效劳器端还可能通过 IMEI/AndroidID 这些乖巧地确认到是否统一装备。
回复

使用道具 举报

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

本版积分规则

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