この歩数計アプリと同じ機能を開発する必要があります
私はこの歩数計アプリを非常に詳細に観察しました。
完璧な歩数計アプリではありません。たとえば、ある場所にとどまって手を振ると、歩数と距離も検出されます。
この理想的な重力の振る舞いは無視してください。このアプリの説明では、iPhoneを縛るか、ポケットに入れて歩数を数える必要があるとすでに述べています。このように、私はこのアプリが非常にうまく機能していることを発見しました、それはほとんどすべてのステップを検出します。
私の問題は次のとおりです。上記のロジックに従って1つのサンプルを開発しましたが、そのレベルまでは機能していません。たとえば、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ステップ同時に登録されます。
これを行うために必要な他の実装、またはこのコードの微調整はありますか?
私は他のすべての同様のスタックオーバーフローリンクを見てきました。私が見つけたものは、このレベルまでは機能しません。
助けてください。