Как исключить iPad 2 и iPod Touch 5-го поколения в функции? - PullRequest
0 голосов
/ 06 января 2012

Я пытаюсь создать функцию, которая работает на ВСЕХ устройствах iOS, кроме iPad 2 и iPod Touch 5-го поколения.

- (void)doSomething {

// if iPad 2 or iPod 5th Gen
if ()
{
    NSLog(@"You're using an iPad 2 or iPod 5th Gen. Sorry!");
}
else
{
    NSLog(@"Any other iOS device. Congrats!");
} }

Может кто-нибудь опубликовать краткий примерный фрагмент того, как я могу это сделать?

Ответы [ 2 ]

4 голосов
/ 06 января 2012

Если к вашему приложению предъявляются основные требования к оборудованию (т. Е. Оно не может реально функционировать / делать что-либо полезное, если на устройстве отсутствует оборудование), вам следует добавить запись к записи UIRequiredDeviceCapabilities в вашем Info.plist для вашего приложения.Это не позволит людям, у которых нет необходимого оборудования для использования вашего приложения, покупать его / загружать его случайно.Это также приведет к тому, что в магазине приложений отобразится список всех моделей, которые поддерживают ваше программное обеспечение, чтобы люди могли видеть, что им нужно для его использования.

Если в вашем приложении есть функция, требующая чего-то определенного,как правило, есть встроенные тесты, которые вы можете проверить, чтобы убедиться, что устройство обладает необходимыми функциями / оборудованием.Если это не является основной целью вашего приложения, вы можете включить / отключить эту функцию своего приложения в зависимости от возможностей устройства.Вы не захотите пытаться запросить, какое устройство работает у пользователя (за исключением, может быть, в очень ограниченных обстоятельствах), но скорее спросите, способно ли устройство делать то, что вы хотите.

Поскольку вы упомянули об авто-фокусируя камеру, мы будем использовать это в качестве примера.Если ваше приложение требует, чтобы это делало что-то полезное, вы должны добавить ключ UIRequiredDeviceCapabilities в файл Info.plist и добавить запись auto-focus-camera в массив.Это гарантирует, что только пользователи, у которых есть устройство с автофокусировкой, смогут приобрести и установить ваше приложение.Дополнительные сведения о ключах UIKit для Info.plist, включая этот, см. В справочнике по ключам списка свойств информации .

Если, с другой стороны, ваше приложение может использоваться любым устройством, ноимеет функцию, которая требует автофокусировки камеры, вы можете проверить ее наличие, используя AVFoundation framework.Здесь вы можете получить то, что вам нужно, из класса AVCaptureDevice .Например, чтобы проверить, есть ли у вас доступ к камере с автофокусировкой для видео / фотографий:

// Check for the default camera
AVCaptureDevice* camera = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
if( camera && [camera isFocusModeSupported:AVCaptureFocusModeAutoFocus] ) {
  // this device has a default video source capable of autofocus, so enable the feature
} else {
  // this device does not have the required hardware, so disable the feature
}
0 голосов
/ 06 января 2012

Проверьте это:

if ([[AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo] isFocusModeSupported:AVCaptureFocusModeAutoFocus]) {
   //device with autofocus
}
else {
       //device without autofocus
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...