iOS-獲取手機唯一標識符(獲取蘋果手機IMEI,獲取蘋果手機MAC)

一、iOS7以后不能獲取手機IMEI

iOS2.0版本以后UIDevice提供一個獲取設備唯一標識符的方法uniqueIdentifier,通過該方法我們可以獲取設備的序列號,

這個也是目前為止唯一可以確認唯一的標示符。好景不長,因為該唯一標識符與手機一一對應,蘋果覺得可能會泄露用戶隱私,

所以在iOS5之后該方法就被廢棄掉了,因此iOS5以后不能獲取手機IMEI,但是也是可以通過私有API獲取手機的IMEI號的,

但是通過蘋果私有API獲取IMEI號,上架蘋果商店會被拒掉的。

二、iOS7以后不能通過獲得MAC地址來標示手機唯一

應用在iOS6及以下時,可以正確取道Mac地址,在iOS7上,會返回固定值。

這樣帶來的問題是無法區(qū)分具體的iOS設備,有些產(chǎn)品就非常難搞了,目前沒有找到可以區(qū)分不同iOS設備的方法。

測試過mac地址,確實會返回固定值02:00:00:00:00:00

三、可以通過獲取identifierForVendor和identifierForAdvertising來標示手機

1.獲取identifierForVendor

NSString *identifierForVendor = [[UIDevice currentDevice].identifierForVendor UUIDString];

NSLog(@"identifierForVendor == %@",identifierForVendor);

2.獲取identifierForAdvertising(廣告標示符)

a.添加框架

AdSupport.framework

b.添加頭文件

#import<AdSupport/ASIdentifier Manager.h>

c.使用語句

NSString*identifierForAdvertising = [[[ASIdentifierManagersharedManager]advertisingIdentifier]UUIDString];

NSLog(@"identifierForAdvertising == %@",identifierForAdvertising);

d.advertisingIdentifier介紹

廣告標示符是由系統(tǒng)存儲著的。不過即使這是由系統(tǒng)存儲的,但是有幾種情況下,會重新生成廣告標示符。如果用戶完全重置系統(tǒng)((設置程序->通用->還原->還原位置與隱私),這個廣告標示符會重新生成。

另外如果用戶明確的還原廣告(設置程序->通用->關于本機->廣告->還原廣告標示符),那么廣告標示符也會重新生成。

關于廣告標示符的還原,有一點需要注意:如果程序在后臺運行,此時用戶“還原廣告標示符”,然后再回到程序中,此時獲取廣告標示符并不會立即獲得還原后的標示符。必須要終止程序,然后再重新啟動程序,才能獲得還原后的廣告標示符。之所以會這樣,因為ASIdentifierManager是一個單例。

更多相關請見:http://oleb.net/blog/2012/09/udid-apis-in-ios-6/

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容