Как определить, есть ли у меня iPhone 2G,3G,3GS
Я хочу определить мое текущее имя устройства. Как я могу обнаружить это через iPhone SDK? Кроме того, как я могу определить, не вставлена ли в iPhone SIM-карта?
4 ответа
На iPhone или iPod Touch:
UIDevice *device = [UIDevice currentDevice];
NSString *systemName = [device systemName];
Чтобы определить версию ОС:
UIDevice *device = [UIDevice currentDevice];
NSString *systemVersion = [device systemVersion];
Чтобы обнаружить конкретную модель, вам нужно проверить наличие некоторых возможностей, которые есть только у этой модели, поэтому для обнаружения iPhone 3GS проверьте наличие видео на камере:
#define SOURCETYPE UIImagePickerControllerSourceTypeCamera
// does the device have a camera?
if ([UIImagePickerController isSourceTypeAvailable:SOURCETYPE]) {
// if so, does that camera support video?
NSArray *mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:SOURCETYPE];
bool isA3GS = [mediaTypes containsObject:kUTTypeMovie];
}
Вот класс, написанный Эрикой Садун, который предоставляет широкие возможности для этого:
http://github.com/erica/uidevice-extension/blob/master/UIDevice-Hardware.m
Посмотрите остальную часть репозитория - есть еще несколько классов, которые могут оказаться действительно полезными для детализированных запросов устройств.
Из файла UIDevice.h:
[[UIDevice currentDevice] name] // e.g. "My iPhone"
[[UIDevice currentDevice] model] // e.g. @"iPhone", @"iPod Touch"
[[UIDevice currentDevice] localizedModel] // localized version of model
[[UIDevice currentDevice] systemName] // e.g. @"iPhone OS"
[[UIDevice currentDevice] systemVersion] // e.g. @"2.0"
[[UIDevice currentDevice] uniqueIdentifier] // a string unique to each device based on various hardware info.
То, что вы ищете, это:
UIDevice *device = [UIDevice currentDevice];
NSString *model = [device model];
Это вернет, является ли устройство iPhone или iPod touch