2009-10-09 15 views

risposta

22

Sia che siate in un iPhone o un iPod Touch:

UIDevice *device = [UIDevice currentDevice]; 
NSString *systemName = [device systemName]; 

per rilevare la versione del sistema operativo:

UIDevice *device = [UIDevice currentDevice]; 
NSString *systemVersion = [device systemVersion]; 

Per rilevare un modello specifico, si avrebbe bisogno di provare per un po ' capacità che solo quel modello ha, quindi per rilevare un iPhone 3GS, verificare la capacità video sulla telecamera:

#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]; 
} 
+0

questa linea mostra un errore [mediaTypes containsObject: kUTTypeMovie]; errore: 'kUTTypeMovie' non dichiarato –

+5

Uno dei seguenti problemi verrà risolto. 1) Aggiungi il framework MobileCoreServices al tuo progetto 2) Aggiungi #import al file di intestazione in cui farai riferimento al selettore. In alternativa, è possibile aggiungere l'importazione al file di intestazione precompilato (.pch) in modo che le costanti UTCoreTypes siano disponibili per tutto il progetto. – mmc

+2

nella mia esperienza è necessario fare entrambi 1 e 2. – erich

9

Dal file 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. 
+0

Ho eseguito la mia app in iPhone 2g ma restituisce solo iPhone non iPhone 2g. qui noi il codice NSString * uniqueIdentifier = [[UIDevice currentDevice] uniqueIdentifier]; \t NSString * Modal = [[UIDevice currentDevice] localizedModel]; –

+0

puoi usare il [[UIDevice currentDevice] model] –

19

Ecco una classe scritto da Erica Sadun che fornisce ampie capacità per questo:

http://github.com/erica/uidevice-extension/blob/master/UIDevice-Hardware.m

controllare il resto del pronti contro termine - ci sono un poche altre classi che si dimostrerebbero davvero utili per l'interrogazione dei dispositivi a grana fine.

+1

Questo è ancora meglio! Ottimo per essere in grado di recuperare le dimensioni massime della memoria, ecc. Erica Sadun ha alcune classi molto utili. Grazie per il collegamento a questo! –

+0

Grazie, è fantastico! –

0

Quello che state cercando è questo:

UIDevice *device = [UIDevice currentDevice]; 
NSString *model = [device model]; 

Ciò restituirà se il dispositivo è un iPhone o iPod touch

Problemi correlati