iOS的APP的應(yīng)用開發(fā)的過程中,有時(shí)為了bug跟蹤或者獲取用反饋的需要自動(dòng)收集用戶設(shè)備钉疫、系統(tǒng)信息寞钥、應(yīng)用信息等等,這些信息方便開發(fā)者診斷問題陌选, 當(dāng)然這些信息是用戶的非隱私信息理郑,是通過開發(fā)api可以獲取到的。那么通過那些api可以獲取這些信息呢咨油,iOS的SDK中提供了UIDevice您炉,NSBundle,NSLocale役电。
UIDevice提供了多種屬性赚爵、類函數(shù)及狀態(tài)通知,幫助我們?nèi)轿涣私庠O(shè)備狀況。從檢測(cè)電池電量到定位設(shè)備與臨近感應(yīng)冀膝,UIDevice所做的工作就是為應(yīng)用程序提供用戶及設(shè)備的一些信息唁奢。UIDevice類還能夠收集關(guān)于設(shè)備的各種具體細(xì)節(jié),例如機(jī)型及iOS版本等窝剖。其中大部分屬性都對(duì)開發(fā)工作具有積極的輔助作用麻掸。下面的代碼簡(jiǎn)單的使用UIDevice獲取手機(jī)屬性。
[cpp]view plaincopy
//設(shè)備相關(guān)信息的獲取
NSString?*strName?=?[[UIDevice?currentDevice]?name];
NSLog(@"設(shè)備名稱:%@",?strName);//e.g.?"My?iPhone"
NSString?*strId?=?[[UIDevice?currentDevice]?uniqueIdentifier];
NSLog(@"設(shè)備唯一標(biāo)識(shí):%@",?strId);//UUID,5.0后不可用
NSString?*strSysName?=?[[UIDevice?currentDevice]?systemName];
NSLog(@"系統(tǒng)名稱:%@",?strSysName);//?e.g.?@"iOS"
NSString?*strSysVersion?=?[[UIDevice?currentDevice]?systemVersion];
NSLog(@"系統(tǒng)版本號(hào):%@",?strSysVersion);//?e.g.?@"4.0"
NSString?*strModel?=?[[UIDevice?currentDevice]?model];
NSLog(@"設(shè)備模式:%@",?strModel);//?e.g.?@"iPhone",?@"iPod?touch"
NSString?*strLocModel?=?[[UIDevice?currentDevice]?localizedModel];
NSLog(@"本地設(shè)備模式:%@",?strLocModel);//?localized?version?of?model
bundle是一個(gè)目錄,其中包含了程序會(huì)使用到的資源. 這些資源包含了如圖像,聲音,編譯好的代碼,nib文件(用戶也會(huì)把bundle稱為plug-in). 對(duì)應(yīng)bundle,cocoa提供了類NSBundle.一個(gè)應(yīng)用程序看上去和其他文件沒有什么區(qū)別. 但是實(shí)際上它是一個(gè)包含了nib文件,編譯代碼,以及其他資源的目錄. 我們把這個(gè)目錄叫做程序的main bundle赐纱。通過這個(gè)路徑可以獲取到應(yīng)用的信息脊奋,例如應(yīng)用名、版本號(hào)等疙描。
[cpp]view plaincopy
//app應(yīng)用相關(guān)信息的獲取
NSDictionary?*dicInfo?=?[[NSBundle?mainBundle]?infoDictionary];
//????CFShow(dicInfo);
NSString?*strAppName?=?[dicInfo?objectForKey:@"CFBundleDisplayName"];
NSLog(@"App應(yīng)用名稱:%@",?strAppName);
NSString?*strAppVersion?=?[dicInfo?objectForKey:@"CFBundleShortVersionString"];
NSLog(@"App應(yīng)用版本:%@",?strAppVersion);
NSString?*strAppBuild?=?[dicInfo?objectForKey:@"CFBundleVersion"];
NSLog(@"App應(yīng)用Build版本:%@",?strAppBuild);
NSLocale可以獲取用戶的本地化信息設(shè)置诚隙,例如貨幣類型,國(guó)家起胰,語(yǔ)言久又,數(shù)字,日期格式的格式化效五,提供正確的地理位置顯示等等籽孙。下面的代碼獲取機(jī)器當(dāng)前語(yǔ)言和國(guó)家代碼。
[cpp]view plaincopy
//Getting?the?User’s?Language
NSArray?*languageArray?=?[NSLocale?preferredLanguages];
NSString?*language?=?[languageArray?objectAtIndex:0];
NSLog(@"語(yǔ)言:%@",?language);//en
NSLocale?*locale?=?[NSLocale?currentLocale];
NSString?*country?=?[locale?localeIdentifier];
NSLog(@"國(guó)家:%@",?country);?//en_US
/**
* @author 張興業(yè)
*??iOS入門群:83702688
*??android開發(fā)進(jìn)階群:241395671
*??我的新浪微博:@張興業(yè)TBOW
*/
參考: