对于App云平台系统,如何唯一标识移动设备非常重要. 否则,每次用户在设备上卸载并重新安装应用程序时,后端系统只能将用户视为全新用户.

在Android上识别设备的唯一性. 因为这个圆圈太乱了,所以设备本身的任何标识都不能直接用作设备的唯一标识. iOS受到系统强大限制的独特认可. 目前,唯一可以部分满足条件的部分是IDFA,但这要求您的App本身必须嵌入广告.

当许多开发人员使用Jiguang Push时,他们有一个问题: Jiguang Push如何唯一地标识设备. 本文分析了Aurora Push如何尽可能唯一地标识设备.

Jiguang Push使用RegistrationID作为设备上安装的App的标识. Aurora Push希望“尽可能”确保设备的唯一性,即使RegistrationID尽可能唯一.

关于RegistrationID,积光的正式文件具有以下定义:

启动第一个应用程序后,将与JPush SDK集成的应用程序成功注册到JPush服务器时,JPush服务器将把device-RegistrationID的唯一标识返回给客户端. JPush SDK将以广播的形式将RegistrationID发送到应用程序.

有了此标识,App编程可以将此RegistrationID保存到其自己的应用程序服务器,然后根据RegistrationID将消息或通知推送到设备.

如果未卸载该应用,则会直接覆盖并安装该应用,Android和iOS上的RegistrationID的值不会更改.

如果该应用已卸载然后再次安装:

在Android上,由于中国存在大量假冒设备,因此无法使用可被视为唯一标识符的常规IMEI,Mac地址和AndroidID值,因为这些值可能在一批设备中相同的值.

Aurora的基本思想是:

生成DeviceID并将其保存到“设置”,“外部存储”. 依靠本地存储. 卸载并重新安装应用程序后,这些存储中的DeviceID仍然是同一设备. 这个理论上解决了90%的不变性问题. 在DeviceID之外添加补充规则: 根据IMEI,MAC地址,AndroidID的值全面判断它是否是旧设备.

根据实际操作条件和收集的反馈不断调整特定的逻辑细节. 大多数逻辑都可以在服务器端进行调整.

由于iOS系统设计限制了设备的唯一标识,因此Jiguang一直使用Device Token作为标识,并且因为Jiguang Push本身需要Device Token的值才能运行.

在iOS 9版本之后,每次卸载后重新安装都会导致设备令牌更改,因此对于Jiguang后端,只能将其识别为新用户.

新版的Jiguang SDK添加了IDFA选项. 集成并初始化SDK时,可以设置IDFA值,以便Jiguang背景会首先根据IDFA值识别用户如何查设备码,并在有可能的情况下在卸载后重新安装该应用程序,还可以将其标识为旧设备.

IDFA是广告标识符,由iOS专门设计,用于唯一标识用于广告跟踪的用户. 在iOS设备上,设备->隐私->广告页面上有一个设置项: 限制广告跟踪. 默认未选中,即关闭状态,没有限制. 用户可以选择限制广告跟踪. 除了设置外,还有一个按钮: 恢复广告标识符...如果用户单击此按钮,则IDFA值将更改.

默认情况下,广告跟踪没有限制,并且可以采用IDFA值. 并且当用户不单击“还原广告徽标”时如何查设备码,此值将不会更改. 这样就可以达到唯一识别设备并跟踪用户的目的.

但是,请注意,不一定要启用IDFA. 它要求您的应用程序具有广告功能,然后才能使用. 否则,Apple可能会在审核过程中发现并拒绝.

有关Apple App的IDFA要求,请参阅此处的说明:

由于在JPush SDK注册完成后获得了RegistrationID,因此在调用SDK API以获得RegistrationID的值时需要注意. 它并不总是立即可用.

例如,在iOS上,建议在监视通知kJPFNetworkDidLoginNotification后获取代码中RegistrationID的值.

Android拥有写设置的权限,该设置可以将数据写到设置中,等效于用作永久存储点. 外部存储通常指的是SDCard,现在越来越多的手机直接与手机一起使用,就像iPhone一样.

如果这两点的数据都被破坏,则实际上不会通过本地DeviceID存储确认为唯一设备. 但是,服务器还可以通过IMEI / AndroidID灵活地确认设备是否相同.

从上方复制

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/ruanjian/article-288610-1.html

android获取固定uuid,稳定获取Android设备唯一代码(UUID)的解决方案相关推荐

  1. android 手机固定mac地址吗,Android手机获取Mac地址的几种方法

    最常用的方法,通过WiFiManager获取: /** * 通过WiFiManager获取mac地址 * @param context * @return */ private static Stri ...

  2. ios 设备获取idfa_获取iOS设备唯一标示UUID

    在开发过程中,我们经常会被要求获取每个设备的唯一标示,以便后台做相应的处理.我们来看看有哪些方法来获取设备的唯一标示,然后再分析下这些方法的利弊. 具体可以分为如下几种: UDID IDFA IDFV ...

  3. swift获取openuuid_获取iOS设备唯一标示UUID——Swift版

    在开发过程中,我们经常会被要求获取每个设备的唯一标示,以便后台做相应的处理.我们来看看有哪些方法来获取设备的唯一标示,然后再分析下这些方法的利弊. 具体可以分为如下几种: UDID IDFA IDFV ...

  4. 设备唯一代码获取相关

    获取设备唯一标识 IOS 获取UUID,KeychainAccess中保存的keychain-access-groups为根证书id const char * Utils::getDeviceId() ...

  5. android 播放固定频率的声音,Android使用SoundPool播放音效

    本文实例为大家分享了Android使用SoundPool播放音效的具体代码,供大家参考,具体内容如下 SoundPool(int maxStreams, int streamType, int src ...

  6. android 播放固定频率的声音,Android 播放指定频率正弦波声音

    用Android设备来播放指定频率的纯音,首先考虑到纯音是一种固定频率的声波,其实也就是正弦声波了.其实所有声音都是有正弦波组成,只不过纯音是固定频率的正弦波.那么要实现Andoird播放纯音,那么首 ...

  7. android 播放固定频率的声音,Android 播放指定频率的纯音

    用Android设备来播放指定频率的纯音,首先考虑到纯音是一种固定频率的声波,其实也就是正弦声波了.其实所有声音都是有正弦波组成,只不过纯音是固定频率的正弦波.那么要实现Andoird播放纯音,那么首 ...

  8. android按钮固定尺寸,如何在android中保持按钮的固定宽高比

    我正在改进你的XML.我没有测试它,但它应该工作.建议的更改是,而不是将图像设置为背景,将其设置为ImageButtons的src.此外,如果您坚持使用Button,则可以使用其他布局包装每个按钮,并 ...

  9. Android开发固定app图标大小,Android和IOS开发图标、启动页尺寸

    最近项目在做android和ios的项目,设计师让我给出图标的尺寸,于是查了一下尺寸. 一.开发中的实际情况: 第一步:产品经理和UI设计师制定好UI规范,然后开始做图标做颜色做尺寸等一系列和APP界 ...

最新文章

  1. Cordova error:npm install -g ios-deploy
  2. pip与conda简述
  3. 2017.6.21 大都市meg 思考记录
  4. 列表 list的技巧
  5. 如何获取filecoin_【IPFSFilecoin】Filecoin矿机厂商排名?如何选择?哪家公司靠谱?...
  6. RDP协议详细解析(二)
  7. quartz集群重复调度的解决
  8. 我对JS栈的简单学习
  9. linux 文件 跳板机_linux 跳板机得搭建
  10. 微积分知识点回顾与总结(二)极限
  11. mac下解压war包
  12. maya linux 安装教程视频,教你怎样在 Archlinux 安装Maya7.01
  13. java gui 记_java GUI简单记事本
  14. 【总结】PHP常见面试题汇总(一)。。。
  15. Absolutt ingenting er mye mer skjerpende parajumpers ? v?re en ulydig prest
  16. 计算机操作实训总结,计算机操作系统安全实训心得总结.doc
  17. 上海南到金山卫22号线金山铁路最新时刻表
  18. 无线显示但是无法上网络连接服务器,无线已连接上但还是不能上网该怎么处理...
  19. 最新巨作!阿布扎比文化和旅游部官宣建一座全球博物馆,2025年完工
  20. MacBook pro 用什么vpn 好_扫地机器人真得好用么?云米互联网扫地机Pro测评!

热门文章

  1. centos6.5搭建贴吧云签到平台(多图预警)
  2. WMI需要开启服务才可以使用
  3. 什么是Webshell?
  4. Mac系统下Jmeter的下载、安装、及环境变量配置
  5. 前端登录页做个简单记住密码
  6. Zend Studio 10正式版注册破解
  7. java在线制作视频,调用ffmpeg(一)
  8. PA30 PA40增强 CMOD
  9. 二、E906移植----项目解读与FPGA基本工程搭建
  10. 警告:No archetype found in remote catalog. Defaulting to internal catalo在远程目录中没有找到原型。默认为内部编录