日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

iOS之获取手机的系统信息

發布時間:2024/5/17 windows 70 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS之获取手机的系统信息 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

iOS的APP應用開發過程中,為了bug跟蹤或者獲取用戶反饋,需要自動收集用戶設備、系統信息、應用信息等。當然這些信息是用戶的非隱私信息,是通過開發api可以獲取到的。那么通過哪些api可以獲取這些信息呢?iOS的SDK中主要提供了UIDevice,NSBundle,NSLocale三種。

  • UIDevice

UIDevice提供了多種屬性、類函數及狀態通知,可以幫助我們全方位了解設備狀況。從檢測電池電量到定位設備與臨近感應,UIDevice所做的工作就是為應用程序提供用戶及設備的一些信息。UIDevice類還能夠收集關于設備的各種具體細節,例如機型及iOS版本等。其中大部分屬性都對開發工作具有積極的輔助作用。
使用UIDevice獲取手機屬性:

//獲取手機信息NSString *stringName = [[UIDevice currentDevice] name];NSLog(@"設備名稱:%@",strName);NSString *stringId = [[UIDevice currentDevice] uniqueIdentifier];NSLog(@"設備唯一標識:%@", strId);//UUID在5.0后不可用NSString *strSysName = [[UIDevice currentDevice] systemName];NSLog(@"系統名稱:%@", strSysName);// e.g. @"iOS"NSString *strSysVersion = [[UIDevice currentDevice] systemVersion];NSLog(@"系統版本號:%@", strSysVersion);// e.g. @"4.0"NSString *strModel = [[UIDevice currentDevice] model];NSLog(@"設備模式:%@", strModel);// e.g. @"iPhone", @"iPod touch"NSString *strLocModel = [[UIDevice currentDevice] localizedModel];NSLog(@"本地設備模式:%@", strLocModel);//
  • NSBundle

bundle是一個目錄,其中包含了程序會使用到的資源。 這些資源包含了如圖像、聲音、編譯好的代碼、nib文件(用戶也會把bundle稱為plug-in)。對應bundle,cocoa提供了類NSBundle。一個應用程序看上去和其他文件沒有什么區別,但是實際上它是一個包含了nib文件,編譯代碼,以及其他資源的目錄。 我們把這個目錄叫做程序的main bundle。通過這個路徑可以獲取到應用的信息,例如應用名、版本號等。

// app應用相關信息的獲取NSDictionary *dicInfo = [[NSBundle mainBundle] infoDictionary];// CFShow(dicInfo);NSString *strAppName = [dicInfo objectForKey:@"CFBundleDisplayName"];NSLog(@"App應用名稱:%@", strAppName);NSString *strAppVersion = [dicInfo objectForKey:@"CFBundleShortVersionString"];NSLog(@"App應用版本:%@", strAppVersion);NSString *strAppBuild = [dicInfo objectForKey:@"CFBundleVersion"];NSLog(@"App應用Build版本:%@", strAppBuild);
  • NSLocale

NSLocale可以獲取用戶的本地化信息設置,例如貨幣類型,國家,語言,數字,日期格式的格式化,提供正確的地理位置顯示等等。下面的代碼獲取機器當前語言和國家代碼。

//獲取用戶當前使用的語言 NSArray *languageArray = [NSLocale preferredLanguages]; NSString *language = [languageArray objectAtIndex:0]; NSLog(@"語言:%@", language);//獲取用戶所在國家信息 NSLocale *locale = [NSLocale currentLocale]; NSString *country = [locale localeIdentifier]; NSLog(@"國家:%@", country);

注意:
UIDevice是無法獲得具體的設備型號的,要獲得設備型號,比如(iphone 4s, iphone5),要通過這樣的辦法:

引入頭文件:

#include <sys/types.h> #include <sys/sysctl.h>

獲取型號:

// 手機型號 size_t size; sysctlbyname("hw.machine", NULL, &size, NULL, 0); char *machine = (char*)malloc(size); sysctlbyname("hw.machine", machine, &size, NULL, 0); NSString *platform = [NSString stringWithCString:machine encoding:NSUTF8StringEncoding];

這里得到的platform是個設備型號, 比如iphone5,2。故要更加精確點,可以自己根據字符串來判斷。比如:

if ([platform isEqualToString:@"iPhone3,1"]) return @"iPhone 4";

總結

以上是生活随笔為你收集整理的iOS之获取手机的系统信息的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。