2011-07-19 4 views

答えて

29

私はまだiOS 5を使用していませんでしたが、4.x UIAccelerometerとUIAccelerometerDelegateはCoreMotionフレームワークに置き換えました。それはより洗練され、ジャイロスコープの信号を考慮に入れ、センサーの融合を実行します。つまり、あなたのバイアス計算のようなものを較正します。

基本的に、CMDeviceMotionHandlerブロックコールバックは同等です。これは、すべてのdeviceMotionUpdateInterval秒と呼ばれるか、独自のタイマーループを使用してデータを取得できます。それはかなり簡単で使いやすいです。 Simple iPhone motion detectを見て、SDKドキュメントへの3つのリンクに従ってください。

あなたが心に留めする必要が三つあります:デバイスのモーションを使用している場合、それはあなたが、ジャイロスコープのサポート

  • に依存しているため

    • デバイスモーションでの作業は、iPhoneのバージョン> = 4や最新のiPod touchの世代が必要です重力を抽出するために低域フィルタリングを使用しないでください。
    • 古いハードウェアをサポートしたい場合は、生データを処理する必要があります。これは、CMAccelerometerHandlerを作成し、startAccelerometerUpdatesToQueue:withHandler:を呼び出すことによって行われます。次に、あなたはdidAccelerateのような低域フィルタリングで重力を抽出する必要があります
  • +0

    だから、加速度計をどのようなものに置き換えるか知っていますか?私のアプリケーションで使用されていますが、iOS5がリリースされたときにそのアプリケーションをサポートしたいと考えています。ありがとう – jcpennypincher

    +1

    @jcpennypincher:更新された答えを参照し、参照されている答え(シンプルなiPhone ...)で提供されている3つのリンクに従ってください。 – Kay

    +0

    Kayがこの回答を書いた当時、「最新のiPod touch」はiPod Touch 4でした。[Apple](https://developer.apple.com/library/ios/documentation/DeviceInformation/Reference/iOSDeviceCompatibility/)によると、 DeviceCompatibilityMatrix/DeviceCompatibilityMatrix.html)、これらはジャイロスコープ機能を備えた基本モデルです:iPhone 4、iPad 2、iPod Touch 4私の研究から、あなたがiOS 7以上であれば、ジャイロ能力。 iOS 6はiPhone 3GSでサポートされていたので、iOS 6以下であればジャイロ機能をテストする必要があります。 – henryaz