擷取手機資訊

來源:互聯網
上載者:User

標籤:裝置   elf   fork   收集   目錄   current   ret   type   encoding   

UIDevice

UIDevice提供了多種屬性、類函數及狀態通知,協助我們全方位瞭解裝置狀況。從檢測電池電量到定位裝置與臨近感應,UIDevice所做的工作就是為應用程式提供使用者及裝置的一些資訊。UIDevice類還能夠收集關於裝置的各種具體細節,例如機型及iOS版本等。其中大部分屬性都對開發工作具有積極的輔助作用。下面的代碼簡單的使用UIDevice擷取手機屬性。

  //裝置相關資訊的擷取
    NSString *strName = [[UIDevice currentDevice] name];
    NSLog(@"裝置名稱:%@", strName);//e.g. "My iPhone"
    
    NSString *strId = [[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);// localized version of model

 

    CGFloat batteryLevel=[[UIDevice currentDevice] batteryLevel]; // 電池電量

 

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可以擷取使用者的本地化資訊設定,例如貨幣類型,國家,語言,數字,日期格式的格式化,提供正確的地理位置顯示等等。下面的代碼擷取機器當前語言和國家代碼。

 //Getting the User’s Language
    NSArray *languageArray = [NSLocale preferredLanguages];
    NSString *language = [languageArray objectAtIndex:0];
    NSLog(@"語言:%@", language);//en
    
    NSLocale *locale = [NSLocale currentLocale];
    NSString *country = [locale localeIdentifier];
    NSLog(@"國家:%@", country); //en_US

 

手機類型:如:iPhone 6   需要匯入標頭檔:#import <sys/utsname.h>

NSString* phoneModel = [self iphoneType];//方法在下面:

- (NSString *)iphoneType {

 

struct utsname systemInfo;

uname(&systemInfo);

NSString *platform = [NSString stringWithCString:systemInfo.machine encoding:NSASCIIStringEncoding];

if ([platform isEqualToString:@"iPhone1,1"]) return @"iPhone 2G";

if ([platform isEqualToString:@"iPhone1,2"]) return @"iPhone 3G";

if ([platform isEqualToString:@"iPhone2,1"]) return @"iPhone 3GS";

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

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

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

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

if ([platform isEqualToString:@"iPhone5,1"]) return @"iPhone 5";

if ([platform isEqualToString:@"iPhone5,2"]) return @"iPhone 5";

if ([platform isEqualToString:@"iPhone5,3"]) return @"iPhone 5c";

if ([platform isEqualToString:@"iPhone5,4"]) return @"iPhone 5c";

if ([platform isEqualToString:@"iPhone6,1"]) return @"iPhone 5s";

if ([platform isEqualToString:@"iPhone6,2"]) return @"iPhone 5s";

if ([platform isEqualToString:@"iPhone7,1"]) return @"iPhone 6 Plus";

if ([platform isEqualToString:@"iPhone7,2"]) return @"iPhone 6";

if ([platform isEqualToString:@"iPhone8,1"]) return @"iPhone 6s";

if ([platform isEqualToString:@"iPhone8,2"]) return @"iPhone 6s Plus";

if ([platform isEqualToString:@"iPhone8,4"]) return @"iPhone SE";

if ([platform isEqualToString:@"iPhone9,1"]) return @"iPhone 7";

if ([platform isEqualToString:@"iPhone9,2"]) return @"iPhone 7 Plus";

if ([platform isEqualToString:@"iPod1,1"])  return @"iPod Touch 1G";

if ([platform isEqualToString:@"iPod2,1"])  return @"iPod Touch 2G";

if ([platform isEqualToString:@"iPod3,1"])  return @"iPod Touch 3G";

if ([platform isEqualToString:@"iPod4,1"])  return @"iPod Touch 4G";

if ([platform isEqualToString:@"iPod5,1"])  return @"iPod Touch 5G";

if ([platform isEqualToString:@"iPad1,1"])  return @"iPad 1G";

if ([platform isEqualToString:@"iPad2,1"])  return @"iPad 2";

if ([platform isEqualToString:@"iPad2,2"])  return @"iPad 2";

if ([platform isEqualToString:@"iPad2,3"])  return @"iPad 2";

if ([platform isEqualToString:@"iPad2,4"])  return @"iPad 2";

if ([platform isEqualToString:@"iPad2,5"])  return @"iPad Mini 1G";

if ([platform isEqualToString:@"iPad2,6"])  return @"iPad Mini 1G";

if ([platform isEqualToString:@"iPad2,7"])  return @"iPad Mini 1G";

if ([platform isEqualToString:@"iPad3,1"])  return @"iPad 3";

if ([platform isEqualToString:@"iPad3,2"])  return @"iPad 3";

if ([platform isEqualToString:@"iPad3,3"])  return @"iPad 3";

if ([platform isEqualToString:@"iPad3,4"])  return @"iPad 4";

if ([platform isEqualToString:@"iPad3,5"])  return @"iPad 4";

if ([platform isEqualToString:@"iPad3,6"])  return @"iPad 4";

if ([platform isEqualToString:@"iPad4,1"])  return @"iPad Air";

if ([platform isEqualToString:@"iPad4,2"])  return @"iPad Air";

if ([platform isEqualToString:@"iPad4,3"])  return @"iPad Air";

if ([platform isEqualToString:@"iPad4,4"])  return @"iPad Mini 2G";

if ([platform isEqualToString:@"iPad4,5"])  return @"iPad Mini 2G";

if ([platform isEqualToString:@"iPad4,6"])  return @"iPad Mini 2G";

if ([platform isEqualToString:@"i386"])      return @"iPhone Simulator";

if ([platform isEqualToString:@"x86_64"])    return @"iPhone Simulator";

return platform;

 

}

擷取手機資訊

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.