获取真机的devicetoken的方法:

#pragma mark 注册APNs成功并上报DeviceToken
- (void)application:(UIApplication *)application
didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { /// Required - 注册 DeviceToken
[JPUSHService registerDeviceToken:deviceToken]; NSLog(@"%@",[[[[deviceToken description] stringByReplacingOccurrencesOfString: @"<" withString: @""]
stringByReplacingOccurrencesOfString: @">" withString: @""]
stringByReplacingOccurrencesOfString: @" " withString: @""]); deviceTokenString1 = [NSMutableString string]; const char *bytes = (char*)[deviceToken bytes]; NSInteger iCount = deviceToken.length; for (int i = ; i < iCount; i++) { [deviceTokenString1 appendFormat:@"%02x", bytes[i]&0x000000FF]; } NSLog(@"My dvsToken is %@",deviceTokenString1); [[NSUserDefaults standardUserDefaults]setObject:deviceTokenString1 forKey:@"DEVICETOKEN"];
[[NSUserDefaults standardUserDefaults]synchronize];
}

还有一个生成iOS设备唯一标示符的方法是使用iOS设备的Media Access Control(MAC)地址。一个MAC地址是一个唯一的号码,它是物理网络层级方面分配给网络适配器的。这个地址苹果还有其他的名字,比如说是硬件地址(Hardware Address)或是Wifi地址,都是指同样的东西。

  有很多工程和框架都使用这个方法来生成唯一的设备ID。比如说ODIN。然而,苹果并不希望有人通过MAC地址来分辨用户,所以如果你在iOS7系统上查询MAC地址,它现在只会返回02:00:00:00:00:00。

现在苹果明确的表明你应该使用-[UIDevice identifierForVendor]或是-[ASIdentifierManager advertisingIdentifier]来作为你框架和应用的唯一标示符。坦白的来说,应对这些变化也不是那么的难,见以下代码片段:

  1. NSString *identifierForVendor = [[UIDevice currentDevice].identifierForVendor UUIDString];
  2. NSString *identifierForAdvertising = [[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString];

每种方法都适配一种特别的用法:

  identifierForVendor对供应商来说是唯一的一个值,也就是说,由同一个公司发行的的app在相同的设备上运行的时候都会有这个相同的标识符。然而,如果用户删除了这个供应商的app然后再重新安装的话,这个标识符就会不一致。当在设备上安装来自同一个供应商的不同App时,此值保持不变。如果你删除了来自某个供应商的所有app,再重新安装时,此值会改变。

  advertisingIdentifier会返回给在这个设备上所有软件供应商相同的 一个值,所以只能在广告的时候使用。这个值会因为很多情况而有所变化,比如说用户初始化设备的时候便会改变

存储到本地就可以用了!

最新文章

  1. 【QuickHit项目实例】
  2. c# 远程连接ORACLE数据库
  3. MySql启动,提示:Plugin &#39;FEDERATED&#39; is disabled....Cannot allocate memory for the buffer pool
  4. HTML页面定时跳转方法
  5. WPF、Windows Forms和Silverlight间的联系和区别(转)
  6. Web Service实现分布式服务的基本原理
  7. rhel-server-7.2-x86_64无法联网(VMware环境)
  8. 获取json对象长度的问题
  9. 开发服务器端&mdash;&mdash;工程配置
  10. 我用过的linux命令--安装Hadoop
  11. iOS开发工具——统计Crash的工具Crashlytics
  12. RPC原理解析
  13. git bash 支持中文
  14. Mac下的Chrome或Safari访问跨域设置,MBP上使用模拟器Simulator.app或iphone+Safari调试网页
  15. 六、APP开发的主角——UIViewController
  16. MySQL中基于mysqldump和二进制日志log-bin进行逻辑备份以及基于时间点的还原
  17. easyUI拖动课程进课程表
  18. 自建Kubernetes logtail日志采集客户端安装方式
  19. vmware导出为ovf
  20. 转: jquery.qrcode.js生成二维码插件&amp;转成图片格式

热门文章

  1. Mongodb数据导出工具mongoexport和导入工具mongoimport使用
  2. post请求乱码
  3. PHP安全细节(转)
  4. Docker的安装使用-第1章
  5. python 操作redis之——有序集合(sorted set) (七)
  6. laravel路由之分组路由
  7. SignalTap ii的使用
  8. Xamarin for VS 4.0.1.145 Stable版免费完整破解补丁
  9. 进程控制函数(3)-getsid()和setsid()获取当前会话和建立新会话
  10. 孙源即将分享 DynamicCocoa 实现细节