Я исследовал CMMotionActivityManager
нового чипа M7, чтобы определить, идет ли пользователь устройства, бежит, находится в машине и т. д. (см. Документация Apple). Это казалось большим шагом вперед по сравнению с попыткой определить это предыдущее, используя только данные LocationManager
и акселерометра.
Однако я заметил, что CMMotionActivityManager
не имеет активности зацикливания, что разочаровывает и почти мешает полноценному использованию в качестве нового менеджера активности. Кто-нибудь еще нашел удобный способ использовать CMMotionActivityManager
с ездой на велосипеде без необходимости повторного включения CMLocationManager
+ акселерометр, просто чтобы попытаться проверить и на езду на велосипеде?
Обратите внимание, что это также не включает общие варианты транспорта для таких вещей, как поезд. Например, я езжу час в день на поезде. По крайней мере, Automotive можно сделать более общим, подобно тому, как Moves использует Transport.
CMMotionActivity
имеет только эти определенные типы движения:
- стационарный
- гулять пешком
- Бег
- автомобильный
- неизвестный
Полезные примечания из кода Apple, которые не обязательно решают проблему, но полезны:
CMMotionActivity
Оценка активности пользователя на основе движения устройства.
Активность представлена как набор свойств, причем свойства не являются взаимоисключающими.
Например, если вы находитесь в машине, остановившейся перед знаком остановки, состояние может выглядеть так: неподвижен = ДА, идет = НЕТ, бежит = НЕТ, автомобиль = ДА
Или движущееся транспортное средство, стационарное = НЕТ, идущее = НЕТ, работающее = НЕТ, автомобильное = ДА
Или устройство может быть в движении, но не на ходу или в транспортном средстве. неподвижный = НЕТ, ходьба = НЕТ, бег = НЕТ, автомобиль = НЕТ. Обратите внимание, что в этом случае все свойства НЕТ.
[Прямой источник: Apple iOS Framework, CoreMotion/CMMotionActivity.h @interface CMMotionActivity, встроенные комментарии к коду]