国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

iOS整理筆記獲取手機信息(UIDevice、NSBundle、NSLocale)

2019-11-14 20:08:41
字體:
來源:轉載
供稿:網友

/*
    iOS的APP的應用開發的過程中,有時為了bug跟蹤或者獲取用反饋的需要自動收集用戶設備、系統信息、應用信息等等,這些信息方便開發者診斷問題,當然這些信息是用戶的非隱私信息,是通過開發api可以獲取到的。那么通過那些api可以獲取這些信息呢,iOS的SDK中提供了UIDevice,NSBundle,NSLocale。
    UIDevice
    
    UIDevice提供了多種屬性、類函數及狀態通知,幫助我們全方位了解設備狀況。從檢測電池電量到定位設備與臨近感應,UIDevice所做的工作就是為應用程序提供用戶及設備的一些信息。UIDevice類還能夠收集關于設備的各種具體細節,例如機型及iOS版本等。其中大部分屬性都對開發工作具有積極的輔助作用。下面的代碼簡單的使用UIDevice獲取手機屬性。
    */
    //獲取手機信息
    NSString *strName = [[UIDevice currentDevice] name];
    NSLog(@"設備名稱:%@",strName);
    
    /*
    NSString *strId = [[UIDevice currentDevice] uniqueIdentifier];
    NSLog(@"設備唯一標識:%@", strId);//UUID,5.0后不可用
    */
    // 獲取設備相關信息
    NSString *strSysName = [[UIDevice currentDevice] systemName];
    NSLog(@"系統名稱:%@",strSysName);
    
    NSString *strSysVersion = [[UIDevice currentDevice]systemVersion];
    NSLog(@"系統版本號:%@",strSysVersion);
    
    NSString *strModel = [[UIDevice currentDevice] model];
    NSLog(@"設備模式:%@",strModel);
    
    NSString *strLocModel = [[UIDevice currentDevice] localizedModel];
    NSLog(@"本地設備模式:%@",strLocModel);
    /*
   bundle是一個目錄,其中包含了程序會使用到的資源. 這些資源包含了如圖像,聲音,編譯好的代碼,nib文件(用戶也會把bundle稱為plug-in). 對應bundle,cocoa提供了類NSBundle.一個應用程序看上去和其他文件沒有什么區別. 但是實際上它是一個包含了nib文件,編譯代碼,以及其他資源的目錄. 我們把這個目錄叫做程序的main bundle。通過這個路徑可以獲取到應用的信息,例如應用名、版本號等。
    */
    
    NSDictionary *dict = [[NSBundle mainBundle]infoDictionary];
    
    NSString *strAppName = [dict objectForKey:@"CFBundleDisplayName"];
    NSLog(@"App應用名稱:%@",strAppName);

    NSString *strAppVersion = [dict objectForKey:@"CFBundleShortVersionString"];
    NSLog(@"App應用版本:%@",strAppVersion);
    
    NSString *strAppbuild = [dict objectForKey:@"CFBundleVersion"];
    NSLog(@"APP應用Build版本: %@",strAppbuild);
    
    /*
    NSLocale
    NSLocale可以獲取用戶的本地化信息設置,例如貨幣類型,國家,語言,數字,日期格式的格式化,提供正確的地理位置顯示等等。下面的代碼獲取機器當前語言和國家代碼。
     */
    //Getting the User’s Language
    NSArray *languageArray =  [NSLocale PReferredLanguages];
    NSString *language = [languageArray objectAtIndex:0];
    NSLog(@"語言:%@", language);
    
    NSLocale *locale = [NSLocale currentLocale];
    NSString *country = [locale localeIdentifier];
    NSLog(@"國家:%@", country); //en_US

PS:我們的宏定義 本質上是一樣的

NS_INLINE NSString* UDID() {
#if kUseTestUDID
  return kTestUDID;
#else  
  return [[UIDevice currentDevice] serialNumber];
#endif
}

NS_INLINE NSString * DeviceType() {
  return [[UIDevice currentDevice] model];
}

NS_INLINE NSString * DeviceOS() {
  return [[UIDevice currentDevice] systemName];
}

NS_INLINE NSString * DeviceOSVersion() {
  return [[UIDevice currentDevice] systemVersion];
}

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 静海县| 自治县| 日照市| 婺源县| 昂仁县| 黄石市| 康乐县| 阿坝| 定日县| 平顶山市| 彰化县| 巴青县| 衡水市| 商河县| 南漳县| 社旗县| 东乌珠穆沁旗| 安庆市| 潞西市| 娄烦县| 天门市| 大城县| 长兴县| 璧山县| 平邑县| 曲松县| 克什克腾旗| 北碚区| 休宁县| 随州市| 万安县| 扎鲁特旗| 陆川县| 汉川市| 忻州市| 彭阳县| 砚山县| 大荔县| 兴宁市| 鄂托克前旗| 新竹县|