iOS5 CMMotionManager startDeviceMotionUpdatesToQueue:не работает на iPhone3GS
-
12-11-2019 - |
Вопрос
У меня возникла проблема, связанная с программным обеспечением и оборудованием, которую я пытаюсь устранить.Мое приложение было разработано для iPhone4, iOS5 и использует платформу Core Motion для обработки данных акселерометра и гироскопа в режиме реального времени.Приложение не работает при запуске на iPhone 3GS с iOS5.
Мой основной метод движения ядра выглядит так:
[motionManager startDeviceMotionUpdatesToQueue:motionQueue withHandler:^(CMDeviceMotion *motion, NSError *error) {
//notify calibration delegate
if(calibrationDelegate)
{
[calibrationDelegate collectCalibrationMotionData:motion];
}
//a lot more processing
}
У меня есть сообщения, что iPhone3GS не возвращает «да» для isGyroAvailable, а iPhone4 возвращает «да».
BOOL accelerometerAvailable = (motionManager.isAccelerometerAvailable)?YES:NO;
BOOL gyroscopeAvailable = (motionManager.isGyroAvailable)?YES:NO;
if(!accelerometerAvailable && ! gyroscopeAvailable)
{
//handle error
remoteControlState = kRemoteControlStateError;
}
Я с болью обнаружил, что Apple продает мое приложение клиентам с iPhone 4, 4s И 3GS. Приложение не работает для клиентов с iPhone 3GS, поскольку приведенный выше вызов не передает движущиеся объекты делегату калибровки.
У меня нет iPhone 3GS для тестирования приложения, поэтому у меня есть несколько вопросов:
Можно ли указать в любом месте в свойствах проекта Xcode, которые я хочу, чтобы мое приложение работало только на iPhone4 и выше? (или есть устройства с гироскопом?)
Где я могу найти больше информации о причудах iOS5, подобных вышеуказанным, чтобы лучше понять, как iPhone3GS отличается от iPhone4?
Решение
Можно ли где-нибудь в свойствах проекта XCode указать, что я хочу, чтобы мое приложение запускалось ТОЛЬКО на iPhone4 и выше?(или есть устройства с гироскопом?)
Да, вы должны указать такие зависимости в UIRequiredDeviceCapabilities
ключ вашего Info.plist (gyroscope
в этом случае это будет обязательным требованием).
Однако для выпущенного приложения это, к сожалению, невозможный добавить новые требования.