iPhone用の動き検出アラームを作成しています。このアラームは、「アクティブ化」ボタンを押すことによって設定され、小さなカウントダウンの後に、それが動いているかどうかを読み取る。私は動きを検出するために加速度計を使用しようとしましたが、閾値が低すぎると、デバイスが動いているかどうかにかかわらず、常に動いています。スレッショルドを高く設定すると、動きが検出されず、動きの特定の速度のみが検出されます。デバイスが移動したことを検出する
力量によってではなく、電話機が実際に移動したかどうかは、どのようにこれを正しく行うかに関する解決策がありますか?
私はそれを実装する方法のオンラインの例を見つけようとしましたが、拡張現実感とOpenGLなどのソリューションが出てきました。動きの単純な検出だけが必要です。
は、任意の助けをありがとう!
EDIT:
私はそれがアップルのドキュメントからいくつかのサンプルを使用して作業を得ることができました。
私は、この加速度計didAccelerate法を用いて、欲しいものを達成するために管理してきました:重力のためのベクトルを計算することができ、これを行うに
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
// Use a basic low-pass filter to keep only the gravity component of each axis.
accelX = (acceleration.x * kFilteringFactor) + (accelX * (1.0 - kFilteringFactor));
accelY = (acceleration.y * kFilteringFactor) + (accelY * (1.0 - kFilteringFactor));
accelZ = (acceleration.z * kFilteringFactor) + (accelZ * (1.0 - kFilteringFactor));
float accelerationThreshold = 1.01; // or whatever is appropriate - play around with different values
if (fabs(accelX) > accelerationThreshold || fabs(accelY) > accelerationThreshold || fabs(accelZ) > accelerationThreshold) {
[self.soundPlayer play];
accelX = accelY = accelZ = 0;
accelerometerActive = NO;
accelerometer.delegate = nil;
accelerometer = nil;
}
}
Core Location Frameworkの使用はどうですか? http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/LocationAwarenessPG/CoreLocation/CoreLocation.html –
私のニーズに適しているかどうかは分かりません。たとえば、誰かが電話の横に座って電話がわずかに動いた場合など、アラームをオフにする必要があります。 – ThisDarkTao