CMMotionActivityManager
Оператор импорта
Swift
import CoreMotion
Objective C
@import CoreMotion;
Доступность
Доступный в iOS 7.0 и позже.
CMMotionActivityManager класс обеспечивает доступ к данным движения, хранившим устройством. Данные движения отражаются, идет ли пользователь, выполнение, в механизме, или стационарный в течение многих промежутков времени. Приложение навигации могло бы искать изменения в текущем типе движения и предложить различные направления для каждого. Используя этот класс, можно попросить уведомления, когда текущий тип движения изменяется, или можно собрать прошлые данные изменения движения.
-
Возвращает булевскую переменную, указывающую, доступны ли данные движения на текущем устройстве.
Объявление
Swift
class func isActivityAvailable() -> BoolObjective C
+ (BOOL)isActivityAvailableВозвращаемое значение
YEStrueесли данные движения доступны илиNOfalseесли это не.Обсуждение
Данные движения не доступны на всех устройствах на iOS. Используйте этот метод, чтобы определить, доступна ли поддержка на текущем устройстве.
Оператор импорта
Objective C
@import CoreMotion;Swift
import CoreMotionДоступность
Доступный в iOS 7.0 и позже.
-
Запускает поставку текущих обновлений данных движения к Вашему приложению.
Объявление
Swift
func startActivityUpdatesToQueue(_queue: NSOperationQueue!, withHandlerhandler: CMMotionActivityHandler!)Objective C
- (void)startActivityUpdatesToQueue:(NSOperationQueue *)queuewithHandler:(CMMotionActivityHandler)handlerПараметры
queueОчередь работы, на которой можно выполнить указанное
handlerблок. Можно указать пользовательскую очередь или использовать очередь работы, связанную с основным потоком приложения. Этот параметр не должен бытьnil.handlerБлок для выполнения, когда обнаруживается изменение в текущем типе движения. Для получения информации о параметрах этого блока посмотрите
CMMotionActivityHandler. Это свойство не должно бытьnil.Обсуждение
Этот метод инициирует отслеживание данных движения асинхронно. По вызову этого метода менеджер по действию движения выполняется
handlerблок на указанномqueue, создание отчетов о текущем движении в действительности для устройства. После этого менеджер по действию движения выполняетсяhandlerблокируйте только, когда изменятся данные движения.handlerблок выполняется на основе максимальных усилий, и обновления не поставлены, в то время как приостановлено Ваше приложение. Если обновления наступили, в то время как Ваше приложение было приостановлено, последнее обновление поставлено Вашему приложению, когда это возобновляет выполнение. Для получения всех обновлений, произошедших, в то время как приложение было приостановлено используйтеqueryActivityStartingFromDate:toDate:toQueue:withHandler:метод.После стартовых обновлений действия менеджер по действию движения сообщает об изменениях в его блоке, пока Вы не вызываете
stopActivityUpdatesметод. Если Вы вызываете этот метод снова с новым блоком, менеджер по действию прекращает поставлять обновления старому блоку и поставляет им новому блоку вместо этого. Когда менеджер по действию движения сам объект освобожден, обновления останавливаются в целом.Оператор импорта
Objective C
@import CoreMotion;Swift
import CoreMotionДоступность
Доступный в iOS 7.0 и позже.
См. также
-
Останавливает поставку обновлений движения к Вашему приложению
Объявление
Swift
func stopActivityUpdates()Objective C
- (void)stopActivityUpdatesОбсуждение
Вызовите этот метод для остановки поставки обновлений, которые Вы запустили путем вызова
startActivityUpdatesToQueue:withHandler:метод. Этот метод не останавливается, запросы начали использоватьqueryActivityStartingFromDate:toDate:toQueue:withHandler:метод.Оператор импорта
Objective C
@import CoreMotion;Swift
import CoreMotionДоступность
Доступный в iOS 7.0 и позже.
-
queryActivityStartingFromDate (_: toDate:toQueue:withHandler:) - queryActivityStartingFromDate:toDate:toQueue:withHandler:Собирает и возвращает исторические данные движения для указанного периода времени
Объявление
Swift
func queryActivityStartingFromDate(_start: NSDate!, toDateend: NSDate!, toQueuequeue: NSOperationQueue!, withHandlerhandler: CMMotionActivityQueryHandler!)Objective C
- (void)queryActivityStartingFromDate:(NSDate *)starttoDate:(NSDate *)endtoQueue:(NSOperationQueue *)queuewithHandler:(CMMotionActivityQueryHandler)handlerПараметры
startВремя начала для использования при сборе данных движения. Этот параметр не должен быть
nil.endВремя окончания для использования при сборе данных движения. Этот параметр не должен быть
nil.queueОчередь работы, на которой можно выполнить указанное
handlerблок. Можно указать пользовательскую очередь или использовать очередь работы, связанную с основным потоком приложения. Этот параметр не должен бытьnil.handlerБлок для выполнения с результатами. Для получения информации о параметрах этого блока посмотрите
CMMotionActivityQueryHandler. Этот параметр не должен бытьnil.Обсуждение
Этот метод работает асинхронно, возвратившись сразу и поставляя результаты к указанному
handlerблок. Система хранит только ценность прошлых семи дней данных действия самое большее. Если нет никаких выборок для указанного диапазона времени, ошибочного объекта с кодомCMErrorUnknownпередаетсяhandlerблок.Оператор импорта
Objective C
@import CoreMotion;Swift
import CoreMotionДоступность
Доступный в iOS 7.0 и позже.
Типы данных
-
Блок, сообщающий о текущем движении, связанном с устройством.
Объявление
Swift
typealias CMMotionActivityHandler = (CMMotionActivity!) -> VoidObjective C
typedef void (^CMMotionActivityHandler)(CMMotionActivity *activity)Обсуждение
Этот блок берет следующий параметр:
activityОбъект действия движения, определяющий текущий тип движения для устройства.
Оператор импорта
Objective C
@import CoreMotion;Swift
import CoreMotionДоступность
Доступный в iOS 7.0 и позже.
-
Блок, сообщающий об обновлениях движения, произошедших между указанным интервалом запроса.
Объявление
Swift
typealias CMMotionActivityQueryHandler = ([AnyObject]!, NSError!) -> VoidObjective C
typedef void (^CMMotionActivityQueryHandler)(NSArray *activities, NSError *error)Обсуждение
Этот блок берет следующие параметры:
activitiesМассив
CMMotionActivityобъекты, указывающие произошедшие обновления. Объекты в массиве упорядочиваются к этому времени, в котором они произошли в интервале требуемого времени. ИспользуйтеstartDateкогда обновление произошло, свойство в каждом движении возражает для определения.errorОшибочное указание объекта, что была проблема, собирающая данные или
nilесли данные движения были определены правильно.Оператор импорта
Objective C
@import CoreMotion;Swift
import CoreMotionДоступность
Доступный в iOS 7.0 и позже.
