什么是UDID?

UDID 「Unique Device Identifier Description」是由子母和数字组成的40个字符串的序号,用来区别每一个唯一的iOS设备,包括 iPhones, iPads, 以及 iPod touches,这些编码看起来是随机的,实际上是跟硬件设备特点相联系的,另外你可以到iTunes,pp助手或itools等软件查看你的udid(设备标识),如下

UDID是用来干什么的?

UDID可以关联其它各种数据到相关设备上。例如,连接到开发者账号,可以允许在发布前让设备安装或测试应用;也可以让开发者获得iOS测试版进行体验。苹果用UDID连接到苹果的ID,这些设备可以自动下载和安装从App Store购买的应用、保存从iTunes购买的音乐、帮助苹果发送推送通知、即时消息。

在iOS 应用早期,UDID被第三方应用开发者和网络广告商用来收集用户数据,可以用来关联地址、记录应用使用习惯……以便推送精准广告。

为什么苹果反对开发人员使用UDID?

iOS 2.0版本以后UIDevice提供一个获取设备唯一标识符的方法uniqueIdentifier,通过该方法我们可以获取设备的序列号,这个也是目前为止唯一可以确认唯一的标示符。

许多开发者把UDID跟用户的真实姓名、密码、住址、其它数据关联起来;网络窥探者会从多个应用收集这些数据,然后顺藤摸瓜得到这个人的许多隐私数据。同时大部分应用确实在频繁传输UDID和私人信息。

为了避免集体诉讼,苹果最终决定在iOS 5 的时候,将这一惯例废除,开发者被引导生成一个唯一的标识符,只能检测应用程序,其他的信息不提供。现在应用试图获取UDID已被禁止且不允许上架。

iOS 6.0系统新增了两个用于替换uniqueIdentifier的接口,分别是:identifierForVendor,advertisingIdentifier。

提供的功能就是“同一开发商的APP在指定机器上都会获得同一个ID。当我们删除了某一个设备上某个开发商的所有APP之后,下次获取将会获取到不同的ID。” 也就是说我们通过该接口不能获取用来唯一标识设备的ID,具体如下:

idfa

  • 全名:advertisingIdentifier
  • 代码:

      #import <AdSupport/AdSupport.h>NSString *adId = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
    
  • 来源:iOS6.0及以后

  • 说明:直译就是广告id, 在同一个设备上的所有App都会取到相同的值,是苹果专门给各广告提供商用来追踪用户而设的,用户可以在 设置|隐私|广告追踪 里重置此id的值,或限制此id的使用,故此id有可能会取不到值,但好在Apple默认是允许追踪的,而且一般用户都不知道有这么个设置,所以基本上用来监测推广效果,是戳戳有余了。
  • 注意:由于idfa会出现取不到的情况,故绝不可以作为业务分析的主id,来识别用户。

idfv

  • 全名:identifierForVendor
  • 代码:

      NSString *idfv = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
    
  • 来源:iOS6.0及以后

  • 说明:顾名思义,是给Vendor标识用户用的,每个设备在所属同一个Vender的应用里,都有相同的值。其中的Vender是指应用提供商,但准确点说,是通过BundleID的反转的前两部分进行匹配,如果相同就是同一个Vender,例如对于com.taobao.app1, com.taobao.app2 这两个BundleID来说,就属于同一个Vender,共享同一个idfv的值。和idfa不同的是,idfv的值是一定能取到的,所以非常适合于作为内部用户行为分析的主id,来标识用户,替代OpenUDID。
  • 注意:如果用户将属于此Vender的所有App卸载,则idfv的值会被重置,即再重装此Vender的App,idfv的值和之前不同。
   程序猿们又想到了使用WiFi的mac地址来取代已经废弃了的uniqueIdentifier方法。具体可见: http://stackoverflow.com/questions/677530/how-can-i-programmatically-get-the-mac-address-of-an-iphone
    然而在iOS 7中苹果再一次无情的封杀mac地址,使用之前的方法获取到的mac地址全部都变成了02:00:00:00:00:00。然后又有了新方法,使用KeyChain来保存获取到的唯一标示符呢,这样以后即使APP删了再装回来,也可以从KeyChain中读取回来。但是不同程序得到的UDID都不一样,相对于单个程序来说是唯一的,所以这个UDID也就无法唯一的确定某台设备。不过不管怎样,至少可以保证同一个开发商的所有程序针对同一台设备能够获取到相同的不变的UDID。

什么是序列号?

序列号是一串标识你手机出生证明以及身材特征的信息,甚至还可用来识别是否为官方翻新机。
你可以简单的将这一串数字分割为:aabccdddeef 的形式。拿iPhone 4为例

aa = 工厂及生产线编号 b = 年份 cc =制造周数 ddd = 机身识别码 ee = 颜色  f = 容量大小 ,通过序列号在苹果官网可以查询手机的激活和保修信息

综上,UDID和序列号是iOS设备特有的属性。

什么是IMEI?

IMEI(International Mobile Equipment Identity)是国际移动设备身份码的缩写,国际移动装备辨识码,是由15位数字组成的"电子串号",它与每台手机一一对应,而且该码是全世界唯一的。每一部手机在组装完成后都将被赋予一个全球唯一的一组号码,这个号码从生产到交付使用都将被制造生产的厂商所记录。手机用户可以在手机中查到自己手机的IMEI码。
IMEI可用移动终端设备通过键入“*#06#”查得(不同厂商的手机所需输入的内容不同,同一厂商不同手机所需输入的内容也可能不同)。其总长为15位,每位数字仅使用0~9的数字。IMEI码由GSM(全球移动通信协会)统一分配,授权BABT(英国通信认证管理委员会)审受。
IMEI组成为:
1、前6位数(TAC,Type ApprovalCode)是"型号核准号码",一般代表机型。
2、接着的2位数(FAC,Final Assembly Code)是"最后装配号",一般代表产地。
3、之后的6位数(SNR)是"串号",一般代表生产顺序号。
4、最后1位数(SP)通常是"0",为检验码,备用。

什么是IMSI?

国际移动用户识别码(IMSI:International Mobile Subscriber Identification Number)是区别移动用户的标志,储存在SIM卡中,可用于区别移动用户的有效信息。其总长度不超过15位,同样使用0~9的数字。

IMSI 与你的手机卡是绑定关系 用于区别移动用户的有效信息
IMEI 与你的手机是绑定关系 用于区别移动终端设备
什么是ICCID?
ICCID:Integrate circuit card identity 集成电路卡识别码(固化在手机SIM卡中),简单来说就是SIM卡序列号,它拥有独一无二的特性,类似于手机的序列号,仅仅指向一张手机卡。共有20位数字组成,不同运营商编码格式不一样。并且前六位数字为运营商代码:比如中国移动的为:898600;中国联通的为:898601,中国电信的为:898603。

关于手机的序列号,UDID,IMEI,IMSI,ICCID详解相关推荐

  1. 序列号,IMEI,IMSI,ICCID的含义

    序列号,IMEI,IMSI,ICCID的含义 什么是序列号? 序列号是一串标识你手机出生证明以及身材特征的信息,甚至还可用来识别是否为官方翻新机. 你可以简单的将这一串数字分割为:aabccdddee ...

  2. NB模组中序列号,IMEI,IMSI,ICCID的含义(一些知识科普)

    概述 下面简述关于NB模组中使用,IMEI,IMSI,ICCID的含义. 什么是序列号? 序列号是一串标识你手机出生证明以及身材特征的信息,甚至还可用来识别是否为官方翻新机. 你可以简单的将这一串数字 ...

  3. python怎么读写文件-手机上怎么写pythonPython文件读写详解及设置文件的字符编码...

    文件读写操作在各种编程语言中都是比较重要的部分,也是很常用的部分,今天就来详细说一下python对文件的读写操作,以及需要注意的点. 一. python打开文件 代码如下:f = open(" ...

  4. android怎么把动图变成视频格式,Android 录制手机屏幕视频生成GIF图片实例详解

    Android 录制手机屏幕视频生成GIF图片实例详解 无图无真相,在我们日常的网络交流中往往需要给交流对象提供直观的显示,而视频是一个很好的方式,但是视频需要播放器,还需要当做文件进行对点传输,并不 ...

  5. android手机怎么拆机,韩雪拆安卓手机:十分钟熟练拆机/详解每个部件

    原标题:韩雪拆安卓手机:十分钟熟练拆机/详解每个部件 韩雪再拆安卓手机,近日,曾给iPhone换屏幕的科技达人韩雪,再次成功拆解安卓手机,并与知名游戏主播一同竞技.直播时,韩雪娴熟地拆下手机的所有部件 ...

  6. Android获取IME,IMSI等各种手机信息,并对号码组成详解

    本文转载自http://www.cnblogs.com/zyw-205520/p/3829119.html 简介: IMSI:international mobiles subscriber iden ...

  7. 华为p4支持鸿蒙功能吗_华为鸿蒙2.0系统支持的手机型号 华为鸿蒙2.0系统详解[多图]...

    华为鸿蒙2.0系统目前已经网上公开招募,还有很多玩家都在问什么手机可以使用,同时大家需要在哪里下载呢,下面一起来看看具体的攻略内容. 华为鸿蒙2.0系统详解 HarmonyOS 2.0手机开发者Bet ...

  8. 支持华为鸿蒙2.0的手机型号是,华为鸿蒙2.0系统支持的手机型号 华为鸿蒙2.0系统详解...

    华为鸿蒙2.0系统目前已经网上公开招募,还有很多玩家都在问什么手机可以使用,同时大家需要在哪里下载呢,下面一起来看看具体的攻略内容. 华为鸿蒙2.0系统详解 HarmonyOS 2.0手机开发者Bet ...

  9. 极客日报第108期:华为余承东:卖车可以弥补手机失去的利润;龙芯详解 LoongArch 指令集

    一分钟速览新闻点! 李想:理想汽车自研的自动驾驶系统明年完全可以和华为.特斯拉正面较量 百度 APP 更新 slogan:百度一下,生活更好 华为消费者业务 CEO 余承东:卖车可以弥补手机失去的利润 ...

最新文章

  1. Android消息机制学习笔记
  2. 用计算机a 3如何定义,计算机绘图A 3次.doc
  3. 局域网计算机中arp,在局域网中的一台计算机上使用了arp-a命令,有如下输出: C:\arp.a Interface: 192.168.0.1 0n - 赏学吧...
  4. maven打包项目的时候找不到jar包,但是项目里面改已经有相关jar包
  5. mysql修改存储引擎报错,MySQL改变表的存储引擎
  6. POJ - 1328 Radar Installation(贪心+思维)
  7. indexOf 方法
  8. 一步步实现SDDC-嵌入式PSC的VC部署
  9. android众包,基于众包的免费停车Android系统设计与实现
  10. idea创建类时自动添加注释
  11. angularjs select 下拉加载option 默认选中第一行为空格的解决办法
  12. 格兰杰因果检验_R实现
  13. 如何给文件夹自定义图标?
  14. Android Studio 获取Shal值
  15. 工业交换机和普通交换机有什么不同,又有哪些作用和优点
  16. python 导入自定义的包
  17. 【机器学习】【决策树】自己动手用Python实现一个类:in样本集,out特征分布、概率密度、熵、条件熵、信息增益、信息增益比
  18. 秋从饶合似陶家,遍绕篱边日渐斜。不是花中偏爱菊,此花开尽更无花
  19. r1音箱原生系统更改服务器,低门槛不破坏R1功能改AUX音源电脑喇叭[已更新完整]...
  20. ip-guard如果服务器 IP 地址或机器名变更之后对客户端或控制台会有影响吗?

热门文章

  1. Android APK 签名、打包笔记
  2. gin+grom+jwt+mysql
  3. thymeleaf 模板引擎
  4. java开发图灵机器人
  5. MySql中对应字段属性为int取出来却为Long
  6. shaderGraph练习(一)------ Fresnel Effect边缘光
  7. 判断一棵树是否是二叉搜索树
  8. 优酷的视频地址获取接口
  9. 分享一款绘制时序图的实用小工具
  10. dorado7.x实现复选框