zoukankan      html  css  js  c++  java
  • IOS 开发之--获取真机的deviceToeken

    获取真机的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 = 0; 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会返回给在这个设备上所有软件供应商相同的 一个值,所以只能在广告的时候使用。这个值会因为很多情况而有所变化,比如说用户初始化设备的时候便会改变

    存储到本地就可以用了!

  • 相关阅读:
    lvs中dr模式配置脚本
    使用AFNetworking第三方下载类
    java 经常使用測试框架
    Qt5的插件机制(1)--Qt 框架中的插件载入机制概述
    leetcode笔记:Merge Sorted Array
    oracle仿全文检索切词机制实现文本信息类似度查找
    hadoop学习;datajoin;chain签名;combine()
    php函数in_array奇怪现象
    Sql_Server中怎样推断表中某列是否存在
    Java Bean 简单介绍及其应用
  • 原文地址:https://www.cnblogs.com/hero11223/p/6731745.html
Copyright © 2011-2022 走看看