1
A
回答
0
使用類,您可以確定您的應用程序是在iPod還是iPhone上運行。要獲取此信息,請訪問名爲model的屬性,該屬性將返回iPhone或iPod touch的NSString。但是,有時您需要更多細節,例如iPhone是最新設備,3GS還是另一端,iPod是第一代還是第二代設備?
訪問系統硬件將顯示我們需要做出上述區別的信息。我們將使用一個類別來擴展UIDevice類,方法是將「機器」類型作爲字符串返回。
@interface UIDevice(machine)
- (NSString *)machine;
@end
訪問硬件類型,我們會打電話給在標準C庫中的函數:
sysctlbyname(const char *name, void *oldp, size_t *oldlenp, void *newp, size_t newlen);
或者
與下面的接口定義開始進口#import <sys/utsname.h>
然後,NSString *deviceName = [Classname myDeviceModel];
+ (NSString*)myDeviceModel
{
struct utsname deviceInfo;
uname(&deviceInfo);
NSString *deviceNameTemp = [NSString stringWithCString:deviceInfo.machine encoding:NSUTF8StringEncoding];
NSDictionary *deviceDictionary =
@{
//simulators.
@"i386": @"iPhone Simulator",
@"x86_64": @"iPad Simulator",
//iPhone's.
@"iPhone1,1": @"iPhone",
@"iPhone1,2": @"iPhone 3G",
@"iPhone2,1": @"iPhone 3GS",
@"iPhone3,1": @"iPhone 4",
@"iPhone3,2": @"iPhone 4(Rev A)",
@"iPhone3,3": @"iPhone 4(CDMA)",
@"iPhone4,1": @"iPhone 4S",
@"iPhone5,1": @"iPhone 5(GSM)",
@"iPhone5,2": @"iPhone 5(GSM+CDMA)",
@"iPhone5,3": @"iPhone 5c(GSM)",
@"iPhone5,4": @"iPhone 5c(GSM+CDMA)",
@"iPhone6,1": @"iPhone 5s(GSM)",
@"iPhone6,2": @"iPhone 5s(GSM+CDMA)",
//iPads.
@"iPad1,1": @"iPad",
@"iPad2,1": @"iPad 2(WiFi)",
@"iPad2,2": @"iPad 2(GSM)",
@"iPad2,3": @"iPad 2(CDMA)",
@"iPad2,4": @"iPad 2(WiFi Rev A)",
@"iPad2,5": @"iPad Mini(WiFi)",
@"iPad2,6": @"iPad Mini(GSM)",
@"iPad2,7": @"iPad Mini(GSM+CDMA)",
@"iPad3,1": @"iPad 3(WiFi)",
@"iPad3,2": @"iPad 3(GSM+CDMA)",
@"iPad3,3": @"iPad 3(GSM)",
@"iPad3,4": @"iPad 4(WiFi)",
@"iPad3,5": @"iPad 4(GSM)",
@"iPad3,6": @"iPad 4(GSM+CDMA)",
//ipods
@"iPod1,1": @"iPod 1st Gen",
@"iPod2,1": @"iPod 2nd Gen",
@"iPod3,1": @"iPod 3rd Gen",
@"iPod4,1": @"iPod 4th Gen",
@"iPod5,1": @"iPod 5th Gen",
};
NSString *deviceName = commonNamesDictionary[deviceNameTemp];
if (deviceName == nil)
{
deviceName = machineName;
}
return deviceName;
}
相關問題
- 1. 創建本地CDMA或GSM網絡?
- 2. 如何查看iPhone網絡類型GSM或CDMA
- 3. 如何在CDMA網絡上找到HTC Incredible的IP地址
- 4. 如何模擬GSM網絡
- 5. Android:強制數據網絡如果Wifi on.Work on GSM失敗CDMA設備
- 6. CDMA 4G網絡連接
- 7. 爲什麼android日誌不能顯示標籤「CDMA」和「GSM」
- 8. 如何找到網絡攝像頭
- 9. 是否可以在iOS5中確定iPhone 4s的網絡類型(GSM/CDMA)
- 10. 當我無法訪問CDMA網絡時,如何最好地測試CDMA信號?
- 11. Android的GSM/CDMA手機重新加載
- 12. Gsm網絡參數android
- 13. 尋找GSM/CDMA通話詳細記錄結構
- 14. 如何檢查iPhone是否支持CDMA或GSM
- 15. 我在CDMA連接時如何獲得網絡小區ID?
- 16. Android如何識別CDMA網絡上的運營商?
- 17. phonetype返回GSM,但我連接到CDMA蜂窩?
- 18. Android手機作爲SIP和CDMA網絡之間的 「代理」
- 19. 是否有任何類或方法獲取cdma signalstrength可以得到GSM,但不是在android的CDMA?
- 20. 將Silverlight 4網絡攝像頭功能集成到WPF中
- 21. 網絡爬蟲的功能
- 22. Moodle網絡服務功能
- 23. Vis.js網絡準備功能?
- 24. 功能性網絡聊天
- 25. Google「網絡燈」功能
- 26. 神經網絡功能
- 27. 從GSM移動網絡估計位置
- 28. Android中的GSM網絡信息
- 29. 檢索GSM網絡信息Android?
- 30. Android中的GSM網絡參數?
謝謝您的回覆,但是我正在尋找任何其他直接API或核心API,而不是這樣的,因爲在未來的新手機來了,那麼我就需要再補充一點,在列表中。 –
然後試試這個庫http://github.com/erica/uidevice-extension/ –