Требуемые возможности устройства - PullRequest
0 голосов
/ 19 ноября 2010

Если я использую акселерометр в своем приложении, я должен добавить необходимые характеристики устройства в info.plist и ввести акселерометр? Если да, что мне добавить?

Ответы [ 3 ]

1 голос
/ 20 ноября 2010

Вы должны писать код для защиты и всегда приятно «ухудшать» приложение. Например, вы должны подумать о том, как ваше приложение будет работать, если акселерометр отсутствует.

Посмотрите на класс CMMotionManager, в частности на его свойство accelerometerActive, которое возвращает BOOL. Вот пример:

CMMotionManager *manager = [[CMMotionManager alloc] init];
if(!manager.accelerometerAvailable) { 
  NSLog(@"Accelerometer not available");
} else { 
  manager.accelerometerUpdateInterval = 1.0;
  NSOperationQueue *motionQueue = [[NSOperationQueue alloc] init]; 
  [manager startAccelerometerUpdatesToQueue: motionQueue withHandler:
    ^(CMAccelerometerData *data, NSError *error) { 
      NSLog(@"Accelerometer data: %@", [data description]);
    }
  ];
}
0 голосов
/ 19 февраля 2012

Вам необходимо использовать

<key>UIRequiredDeviceCapabilities</key>
  <array>
    <string>accelerometer</string>
  </array>

Более подробная информация в Руководстве по программированию приложений iOS (стр. 89, таблица 5-1).Вам не нужно включать этот ключ, если ваше приложение обнаруживает только изменения ориентации устройства.

0 голосов
/ 20 ноября 2010

нет, вам не нужно ничего добавлять в ваш info.plist.Просто убедитесь, что ваш appDelegate реализует протокол UIAccelerometerDelegate, а затем в вашем файле .m просто выполните:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{
 ...
 [[UIAccelerometer sharedAccelerometer] setDelegate:self];
 ....
}

- (void) accelerometer:(UIAccelerometer*)accelerometer didAccelerate:(UIAcceleration*)acceleration
{
     //your accelerometer code
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...