iOS系统总以保护用户隐私标榜,从禁止获取Mac地址,禁止获取UDID,禁止获取手机号码,禁止获取IMEI等等。。。,iOS开发人员总是在苹果限制的道路上斗智斗勇!
下表中不包括用私有API获取硬件信息,因为使用私有API会被禁止上架。
信息类型 | 类型说明 | 能否获取 | 示例 | 备注 |
---|---|---|---|---|
手机型号 | 具体那一款手机 | 支持 | iPhone,iPad,iPod | 通过systemInfo.machine获取 |
系统版本 | 手机系统的版本 | 支持 | iPhone9,1,iPhone9,2 | 通过systemInfo.machine获取 |
屏幕分辨率 | 手机屏幕分辨率 | 支持 | 568×320,667×375 | 包括物理分辨率和逻辑分辨率 |
IMEI | 手机设备唯一标识 | 493002407599521 | iOS 5之后被禁止获取 | |
IMSI | sim卡用户身份识别码 | 460030912121001 | 只能获取部分代号 | |
SIM卡序列号 | sim卡的唯一标识 | 手机卡背面4行共20个数字 | 无法获取 | |
手机号码 | 一般为11位数字 | 18888888888 | iOS 5之后被禁止获取,获取值都为nil | |
运营商信息 | 提供网络服务的供应商 | 支持 | 中国移动,中国联通,中国电信 | 有多种方法获取 |
运行内存 | 手机内存RAM | 不准确 | 647.5MB | API获取的不准确 |
CPU型号 | CPU类型 | 支持 | CPU_TYPE_X86_64,核心数为2 | CPU类型和核心数 |
手机主板型号 | 手机主板硬件的编号 | 无法获取 | 无法获取 | |
是否破解 | 手机是否越狱 | 不准确 | 通过判断是否存在某些文件 | 新越狱工具可能检测不到 |
mac地址 | 网卡的物理地址 | 02:00:00:00:00:00 | iOS 7之后被禁止获取 | |
当前网络环境 | 当前手机使用WiFi/4G | 支持 | 2G/3G/4G/WIFI | 状态栏获取或其他方法获取 |
IP | 手机连入网络的地址 | 不准确 | 111.200.9.21 | 使用代理情况下IP是不准确的 |
GPS | 卫星定位 | 不准确 | 获取经纬度反地理编码 | 地下室等GPS信号弱有较大误差 |
设备序列号 | 设备唯一标识 | 不准确 | iOS的UUID | 删除重装会变,重置位置和隐私会变 |
APP安装时间及更新时间 | 安装时间及更新时间 | 支持 | 2017/8/1 下午2:08:00 | 可用沙盒文件创建时间 |
部分详细说明
- 手机型号:通过systemInfo.machine获取判断是哪种设备。
- 系统版本:通过systemInfo.machine获取设备型号后判断,例如iPhone9,1对应iPhone7,iPhone9,2对应iPhone7 Plus。
- 屏幕分辨率:包括物理分辨率和逻辑分辨率,物理分辨率=逻辑分辨率×屏幕缩放比(就是的1x,2x,3x),1x设备现在基本绝迹,2x对应4寸和4.7屏幕,3x对应Plus设备的5.5寸屏幕。
- IMEI:IMEI(International Mobile Equipment Identity)是国际移动设备身份码的缩写,国际移动装备辨识码,是由15位数字组成的"电子串号",它与每台移动电话机一一对应,而且该码是全世界唯一的。电话拨号键盘输入
*#06#
即可显示。 - IMSI:sim卡中用户身份识别码,储存在SIM卡中。iOS设备现在只能通过CTTelephonyNetworkInfo获取部分信息,如中国MCC代号460,MNC中国移动为00,02,07,IMSI是由信息拼接而成,具体拼接方法Google
- SIM卡序列号:sim卡的唯一标识,就是sim卡背面的四行数字,共20个数字。
- 运营商信息:有多种方法获取,通过CTTelephonyNetworkInfo框架获取,或者通过遍历状态栏StatusBar图标文字获取;其中如果未安装sim卡时,国行iPhone通过CTTelephonyNetworkInfo获取为默认值中国移动。
- 运行内存:手机运行程序时的内存RAM(不是存储空间),可通过手机型号反推,通过API获取的不准确。
- CPU型号:能够获取CPU类型(例如32位CPU和64位CPU)和核心数(双核单核)。
- mac地址:iOS 7之后被禁止获取,所有手机获取到的都是02:00:00:00:00:00。
- APP安装时间及更新时间:可用沙盒文件(例如info.plist)创建时间来计算实际安装时间,也就是更新时间。至于App首次安装时间,可在沙盒存储一个时间标记,有值读取即可,无值时存入本次的安装时间。
网友评论