您的位置:首页 > 移动开发 > IOS开发

如何使用advertisingIdentifier(IOS7不能获得MAC地址)

2013-10-12 14:23 190 查看
一、IOS7不能获得MAC地址

应用在iOS6及以下时,可以正确取道Mac地址,在iOS7上,会返回固定值。

这样带来的问题是无法区分具体的iOS设备,有些产品就非常难搞了,目前没有找到可以区分不同iOS设备的方法。

测试过mac地址,确实会返回固定值02:00:00:00:00:00.以后应该会用广告id吧advertisingIdentifier

二、使用advertisingIdentifier步骤

1、添加框架
AdSupport.framework
2、添加头文件
#import <AdSupport/ASIdentifierManager.h>
3、使用语句
NSString *adId = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];


三、advertisingIdentifier介绍

广告标示符(IDFA-identifierForIdentifier)

这是iOS 6中另外一个新的方法,advertisingIdentifier是新框架AdSupport.framework的一部分。ASIdentifierManager单例提供了一个方法advertisingIdentifier,通过调用该方法会返回一个上面提到的NSUUID实例。

NSString *adId = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];

跟CFUUID和NSUUID不一样,广告标示符是由系统存储着的。不过即使这是由系统存储的,但是有几种情况下,会重新生成广告标示符。如果用户完全重置系统((设置程序 -> 通用 -> 还原 -> 还原位置与隐私) ,这个广告标示符会重新生成。另外如果用户明确的还原广告(设置程序-> 通用 -> 关于本机 -> 广告 -> 还原广告标示符) ,那么广告标示符也会重新生成。关于广告标示符的还原,有一点需要注意:如果程序在后台运行,此时用户“还原广告标示符”,然后再回到程序中,此时获取广告标示符并不会立即获得还原后的标示符。必须要终止程序,然后再重新启动程序,才能获得还原后的广告标示符。之所以会这样,我猜测是由于ASIdentifierManager是一个单例。

针对广告标示符用户有一个可控的开关“限制广告跟踪”。Nick Arnott的文章中已经指出了。将这个开关打开,实际上什么也没有做,不过这是希望限制你访问广告标示符。这个开关是一个简单的boolean标志,当将广告标示符发到任意的服务器端时,你最好判断一下这个值,然后再做决定。

示例: 1E2DFA89-496A-47FD-9941-DF1FC4E6484A

【参考】
http://www.cnblogs.com/wangyutao/archive/2013/04/25/3042150.html http://www.cocoachina.com/bbs/simple/?t145094.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: