Определить аппаратное обеспечение для iPhone - PullRequest
1 голос
/ 16 августа 2010

Как узнать, работает ли приложение на iPhone 4, iPhone 3GS или iPad?

Я хочу определить, какое оборудование я использую, и затем предоставить дополнительные функции, если это iPhone 4 (например, использование видеоподсветки или гироскопа).

Любая помощь будет принята с благодарностью.

Спасибо

PS: Я пытаюсь определить это программно, а неопределить, основано ли это на внешнем виде.

Ответы [ 2 ]

6 голосов
/ 16 августа 2010

Вместо того, чтобы определять устройство модель , вы должны найти и использовать API, проверяя, если желательна функциональность . Например, hasFlash свойство AVCaptureDevice для вспышки и gyroAvailable свойство CMMotionManager для гироскопа.

Если ваше приложение может работать на iOS до iOS4, вы также должны выполнить дополнительную проверку, если перечисленные выше свойства и классы доступны во время выполнения.

5 голосов
/ 16 августа 2010

RE: пример кода, чтобы определить, доступна ли вспышка

   for (AVCaptureDevice *cameraDevice in [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo]) {
        if ([cameraDevice hasFlash]) {
            NSLog(@" Yay! A flash!"):
        }
    }

А если серьезно, чувак, Владимир дал вам имя класса и имя метода.Если бы вы открыли документацию, вы бы это быстро поняли - конечно, быстрее, чем ждать, пока кто-нибудь вставит вам пять строк кода.

...