Мне нужно разработать ту же функциональность, что и в этом приложении шагомера
Я наблюдал это приложение шагомера с очень высокой детализацией.
Это не идеальное приложение шагомер.Например, если вы остаетесь / сидите в одном месте и пожимаете руку, он также определяет количество шагов и расстояние.
Игнорируйте это идеальное и гравитационное поведение, потому что в инструкциях этого приложения уже упоминалось, что выследует связать свой iPhone или вы должны положить его в карман для подсчета шагов.Таким образом, я обнаружил, что это приложение работает очень хорошо, оно обнаруживает почти все шаги.
Моя проблема в том, что я разработал один образец в соответствии с приведенной выше логикой, но он не работает до этого уровня.Например, иногда он обнаруживает 2-3 шага одновременно.И иногда это отлично работает.
Мой код:
В viewDidLoad:
[[UIAccelerometer sharedAccelerometer] setUpdateInterval:0.2]
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
const float violence = 1.2;
static BOOL beenhere;
BOOL shake = FALSE;
if (beenhere) return;
beenhere = TRUE;
if (acceleration.x > violence || acceleration.x < (-1* violence))
shake = TRUE;
if (acceleration.y > violence || acceleration.y < (-1* violence))
shake = TRUE;
if (acceleration.z > violence || acceleration.z < (-1* violence))
shake = TRUE;
if (shake) {
steps=steps+1;
}
beenhere = false;
}
Что я делаю неправильно?Я не могу определить порог.Если я сделаю это высоко, это не обнаружит незначительные шаги.Если я сделаю его маленьким, он зарегистрирует 3-4 шага одновременно.
Требуется ли какая-либо другая реализация для этого или какие-то настройки в этом коде?
Я видел все другие подобные стекиПереполнение ссылок.Ничто из того, что я нашел, не достигает такого уровня.
Пожалуйста, помогите.