2

歩数計のように機能するこのアプリケーションを実行していますが、各ステップの向きを表示したいと考えています。

私がやっていることは、2 つのイベント リスナーを登録することです。各イベントについて、方位角を取得するためonsensorchangedの の値と、ステップが指定されているかどうかを確認する の値を取得しています。sensor.TYPE_ORIENTATIONsensor.TYPE_ACCELEROMETER

この時点で値は正しく取得されていますが、歩数カウントが完了したときに方位角度のみをピークにしたいのです!どうすればよいですか?

メソッド内で行われると思いますがOnSensorChanged、加速度センサーがアクティブでステップがカウントされているときに、方向センサーを呼び出す方法がわかりません..

コード内を見ると、次のようになります。2 つのリスナーを登録した後ACCELEROMETERORIENTATION

OnSensorChanged(SensorEvent event)
{
    if((event.sensor.getType()==Sensor.TYPE_ACCELEROMETER))

    accValues=event.values;

    // NOW get the orientation azimuth value at this time..
    orientationValues=event.values;
}

誰かがこれについて私を明確にしてくれることを願っています..

4

1 に答える 1

2

方位角が必要な場合は、ACCELEROMETERセンサーとMAGNETOMETERセンサーを使用して取得できます。最初に加速度計のデータと磁力計のデータを取得します。次に、SensorManager.getRotationMatrix(Rotation_data, Inclination_data, acc_data, mag_data)関数を使用します。acc_datamag_dataを入力として与える必要があり、 Rotation_dataInclination_dataを出力として取得します。最初は空の配列として渡すだけです。Rotation_dataを取得したら、SensorManager.getOrientation(Rotation_data, angle) を使用します。角度出力として取得する配列です。最初は空の配列としても渡します。関数呼び出しの後、angles[0]を方位として取得し、angles[1]はピッチ、angles[3]はロールです。使用されるすべての配列は、3 つの要素からなる 1 次元配列です。

于 2012-02-29T04:36:03.350 に答える