一垦缅、iOS7以后不能獲取手機(jī)IMEI
iOS2.0版本以后UIDevice提供一個(gè)獲取設(shè)備唯一標(biāo)識(shí)符的方法uniqueIdentifier仔沿,通過(guò)該方法我們可以獲取設(shè)備的序列號(hào)猴鲫,
這個(gè)也是目前為止唯一可以確認(rèn)唯一的標(biāo)示符松靡。好景不長(zhǎng)异旧,因?yàn)樵撐ㄒ粯?biāo)識(shí)符與手機(jī)一一對(duì)應(yīng)艰赞,蘋果覺(jué)得可能會(huì)泄露用戶隱私佣谐,
所以在iOS5之后該方法就被廢棄掉了,因此iOS5以后不能獲取手機(jī)IMEI方妖,但是也是可以通過(guò)私有API獲取手機(jī)的IMEI號(hào)的狭魂,
但是通過(guò)蘋果私有API獲取IMEI號(hào),上架蘋果商店會(huì)被拒掉的党觅。
二雌澄、iOS7以后不能通過(guò)獲得MAC地址來(lái)標(biāo)示手機(jī)唯一
應(yīng)用在iOS6及以下時(shí),可以正確取道Mac地址杯瞻,在iOS7上镐牺,會(huì)返回固定值。
這樣帶來(lái)的問(wèn)題是無(wú)法區(qū)分具體的iOS設(shè)備魁莉,有些產(chǎn)品就非常難搞了睬涧,目前沒(méi)有找到可以區(qū)分不同iOS設(shè)備的方法募胃。
測(cè)試過(guò)mac地址,確實(shí)會(huì)返回固定值02:00:00:00:00:00
三畦浓、可以通過(guò)獲取identifierForVendor和identifierForAdvertising來(lái)標(biāo)示手機(jī)
1.獲取identifierForVendor
NSString *identifierForVendor = [[UIDevice currentDevice].identifierForVendor UUIDString];
NSLog(@"identifierForVendor == %@",identifierForVendor);
2.獲取identifierForAdvertising(廣告標(biāo)示符)
a.添加框架
AdSupport.framework
b.添加頭文件
#import<AdSupport/ASIdentifier Manager.h>
c.使用語(yǔ)句
NSString*identifierForAdvertising = [[[ASIdentifierManagersharedManager]advertisingIdentifier]UUIDString];
NSLog(@"identifierForAdvertising == %@",identifierForAdvertising);
d.advertisingIdentifier介紹
廣告標(biāo)示符是由系統(tǒng)存儲(chǔ)著的痹束。不過(guò)即使這是由系統(tǒng)存儲(chǔ)的,但是有幾種情況下讶请,會(huì)重新生成廣告標(biāo)示符祷嘶。如果用戶完全重置系統(tǒng)((設(shè)置程序->通用->還原->還原位置與隱私),這個(gè)廣告標(biāo)示符會(huì)重新生成夺溢。
另外如果用戶明確的還原廣告(設(shè)置程序->通用->關(guān)于本機(jī)->廣告->還原廣告標(biāo)示符)论巍,那么廣告標(biāo)示符也會(huì)重新生成。
關(guān)于廣告標(biāo)示符的還原风响,有一點(diǎn)需要注意:如果程序在后臺(tái)運(yùn)行嘉汰,此時(shí)用戶“還原廣告標(biāo)示符”,然后再回到程序中钞诡,此時(shí)獲取廣告標(biāo)示符并不會(huì)立即獲得還原后的標(biāo)示符郑现。必須要終止程序,然后再重新啟動(dòng)程序荧降,才能獲得還原后的廣告標(biāo)示符。之所以會(huì)這樣攒读,因?yàn)锳SIdentifierManager是一個(gè)單例朵诫。
更多相關(guān)請(qǐng)見:http://oleb.net/blog/2012/09/udid-apis-in-ios-6/