Как использовать CMDeviceMotion для определения скорости движения моего устройства?

Я пишу приложение для iOS и не хочу начинать обнаруживать события встряхивания, пока мое устройство не достигнет определенной скорости. Я знаю, как использовать CMMotionManager, чтобы получить CMAccelerationData для обнаружения событий встряхивания, но кто-нибудь знает, что я должен использовать для определения скорости движения моего устройства? Либо CMDeviceMoting/userAcceleration/GPS... я просто не могу найти, что мне делать. Я пишу свое приложение быстро, но ответов на Objective-C тоже будет достаточно.

спасибо за помощь


person Amacc002    schedule 16.08.2015    source источник


Ответы (1)


Вы можете использовать CoreLocation и использовать свойство speed CLLocation. Для этого требуется GPS устройства и будет работать только на несколько больших скоростях.

person saagarjha    schedule 16.08.2015
comment
Вы говорите мне? - person saagarjha; 17.08.2015
comment
15mph звучит относительно больше? и похоже, что это может быть то, что я ищу. Я просто никогда раньше не использовал CoreLocation, поэтому я не был уверен, каковы его функции, а также я пытался держаться подальше от использования GPS, чтобы продлить срок службы батареи. но попробую спасибо - person Amacc002; 17.08.2015
comment
Да. Вроде единственное решение для этих скоростей (но их надо продлевать) - person saagarjha; 17.08.2015
comment
Срок службы батареи на iPhone с использованием GPS может быть убийственным, я только что убедился в этом на собственном опыте. Используя то же приложение на iPad, у меня никогда не было проблем. Я бы посоветовал следить за уровнем заряда батареи и не разряжать батарею пользователя полностью, так было пару раз, и есть обстоятельства, при которых действительно не хочется, чтобы телефон разрядился. Оставить возможно ~20%. - person zaph; 17.08.2015
comment
@ILikeTau Мой комментарий по поводу отрицательного голосования был адресован проголосовавшему против, и мне это показалось хорошим ответом. - person zaph; 17.08.2015