• 获取设备UDID、IMEI、ICCID、序列号、Mac地址等信息


    在iOS7之前, 可以方便的使用 [[UIDevice currentDevice] uniqueIdentifier] 来获取设备的UDID,但是在iOS7之后这个方法不再适用。

    你可以用[[UIDevicecurrentDevice]valueForKey:@"uniqueIdentifier"];来获取到一个值,但这个值在iOS7中已经变成了FFFFFF+IDFV的值,显然,这个值并不能唯一标识设备。

    再谈一谈IMEI,这个值好像在5.0的sdk中就不见了,私有库Message.framework的MFNetworkController.h中去掉了这个方法。

    本以为iOS7及以上系统无法再获取到这些值,但看看别人Cydia,不是取得好好的吗?参考了一下Cydia的源码:

    MobileCydia.mm

    可以看到它使用了libMobileGestalt.dylib这个动态库,下面说一说具体如何操作。

    1、导入libMobileGestalt.dylib库

    2、加入声明

    1. OBJC_EXTERNCFStringRef MGCopyAnswer(CFStringRef key) WEAK_IMPORT_ATTRIBUTE;  

    3、使用如下方法获取

    1. CFStringRef UDID = MGCopyAnswer(CFSTR("UniqueDeviceID"));  
    2. CFStringRef IMEI =MGCopyAnswer(CFSTR("InternationalMobileEquipmentIdentity"));  
    3. CFStringRefserialNumber = MGCopyAnswer(CFSTR("SerialNumber"));  
    1. CFArrayRef ICCIDArray =MGCopyAnswer(CFSTR("CarrierBundleInfoArray"));  
    2. CFDictionaryRef ICCIDDic =CFArrayGetValueAtIndex(ICCIDArray, 0);  
    3. CFStringRef ICCID  =CFDictionaryGetValue(ICCIDDic, CFSTR("IntegratedCircuitCardIdentity"));  
    1. CFStringRefwifiAddress = MGCopyAnswer(CFSTR("WifiAddress"));  
    2. CFStringRefbluetoothAddress = MGCopyAnswer(CFSTR("BluetoothAddress"));  
    3. CFStringRefCPUArchitecture = MGCopyAnswer(CFSTR("CPUArchitecture"));  
    4. CFStringRefproductType = MGCopyAnswer(CFSTR("ProductType"));  
    5. CFTypeRefairplaneMode = MGCopyAnswer(CFSTR("AirplaneMode"));  
    6. if (airplaneMode ==kCFBooleanTrue) { ... }  

    4、经过测试发现这些方法在iOS7以下不用越狱就能取到、在iOS7中需要越狱并创建xxx.entitlements文件,添加如下权限

    5、在BuildSettings的Code SigningEntitlements中添加刚才创建的文件xxx.entitlements

    6、编译运行

    7、附上demo工程

    http://download.csdn.net/detail/ookcode/8247495

    8、我的环境

    Xcode 6.1

    iOS 8.1 SDK

    OS X 10.9.5

  • 相关阅读:
    170120、java 如何在pdf中生成表格
    170119、100亿数据1万属性数据架构设计
    170118、快速失败Vs安全失败(Java迭代器附示例)
    170117、spring解决乱码
    170116、centos6.4下nginx和ftp搭建图片服务器
    170113、CentOs6.4中安装和配置vsftp简明教程
    linux nginx完全卸载
    DevOps 的技术栈与工具链
    git与pycharm结合使用
    JMeter和JMeterPlugin的下载安装
  • 原文地址:https://www.cnblogs.com/meixian/p/6164104.html
Copyright © 2020-2023  润新知