我必须开发与此计步器应用程序相同的功能
我已经非常详细地观察了这个计步器应用程序。
它不是一个完美的计步器应用程序。例如,如果您停留/坐在一个地方并握手,它还会检测步数和距离。
忽略这种理想和重力行为,因为在这个应用程序的说明中已经提到你应该系好你的 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 个步骤。
是否需要任何其他实现来执行此操作,或者在此代码中进行一些调整?
我看过所有其他类似的 Stack Overflow 链接。我发现没有任何东西可以达到这个水平。
请帮忙。