IOS 特定於裝置的開發:擷取額外的裝置資訊

來源:互聯網
上載者:User

標籤:

sysctl()和sysctlbyname()允許擷取系統資訊。這些標準的UNIX函數用於詢問作業系統有關硬體和OS的詳細資料。

這些常量使你能夠檢查核心資訊,比如系統的CPU頻率,可用的記憶體量等。它引入了一個UIDevice類,用於搜集系統資訊,並通過一系列方法調用返回它。

每個型號都提供了獨特的內建能力,準確知道你正在處理哪款iPhone有助於確定那個單元是否有可能支援諸如可訪問性,GPS和磁力計之類的特性。

#pragma mark sysctlbyname utils- (NSString *) getSysInfoByName:(char *)typeSpecifier{    size_t size;    sysctlbyname(typeSpecifier, NULL, &size, NULL, 0);        char *answer = malloc(size);    sysctlbyname(typeSpecifier, answer, &size, NULL, 0);        NSString *results = [NSString stringWithCString:answer encoding: NSUTF8StringEncoding];    free(answer);    return results;}- (NSString *) platform{    return [self getSysInfoByName:"hw.machine"];}// Thanks, Tom Harrington (Atomicbird)- (NSString *) hwmodel{    return [self getSysInfoByName:"hw.model"];}

返回的是:

2014-12-22 15:59:40.391 HelloWorld[2673:943598] Platform: iPhone5,42014-12-22 15:59:40.393 HelloWorld[2673:943598] HWModel: N49AP
#pragma mark sysctl utils- (NSUInteger) getSysInfo: (uint) typeSpecifier{    size_t size = sizeof(int);    int results;    int mib[2] = {CTL_HW, typeSpecifier};    sysctl(mib, 2, &results, &size, NULL, 0);    return (NSUInteger) results;}- (NSUInteger) cpuFrequency{    return [self getSysInfo:HW_CPU_FREQ];}- (NSUInteger) busFrequency{    return [self getSysInfo:HW_BUS_FREQ];}- (NSUInteger) cpuCount{    return [self getSysInfo:HW_NCPU];}- (NSUInteger) totalMemory{    return [self getSysInfo:HW_PHYSMEM];}- (NSUInteger) userMemory{    return [self getSysInfo:HW_USERMEM];}- (NSUInteger) maxSocketBufferSize{    return [self getSysInfo:KIPC_MAXSOCKBUF];}

查看磁碟空間

- (NSNumber *) totalDiskSpace{    NSDictionary *fattributes = [[NSFileManager defaultManager] attributesOfFileSystemForPath:NSHomeDirectory() error:nil];    return [fattributes objectForKey:NSFileSystemSize];}- (NSNumber *) freeDiskSpace{    NSDictionary *fattributes = [[NSFileManager defaultManager] attributesOfFileSystemForPath:NSHomeDirectory() error:nil];    return [fattributes objectForKey:NSFileSystemFreeSize];}

 

IOS 特定於裝置的開發:擷取額外的裝置資訊

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.