4

Androidのハードウェアコンパスで多くの情報を見つけることができません。Androidにハードウェアコンパスの使用を強制するための基準を設定しようとしています。基本的に私の問題は、デバイスが静止しているときでもベアリングを更新したいということです。

私の理解では、GPSは移動時にのみ方位を更新します。引っ越しをしていてもいなくても、更新していきたいです。速度を一定の10に設定して、デバイスをだまして動いていると思わせようとしましたが、ベアリングは常に0.0を返します。

(現在)テスト用の私のデバイスはHTCタトゥーです。それはコンパスを持っているので、それは問題ではありません。だから私の質問は、ハードウェアコンパスを使用して方位を更新する方法はありますか?引っ越しをするかどうかに関係なく?

4

1 に答える 1

2

このコード例を見たことがありますか? ここでSensorListenerは、方向を照会するために a が使用されます。

mSensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
mListener = new SensorListener() {
    public void onSensorChanged(int sensor, float[] values) {
        if (Config.LOGD) Log.d(TAG, "sensorChanged (" + values[0] + ", " + values[1] + ", " + values[2] + ")");
        mValues = values;
        if (mView != null) {
            mView.invalidate();
        }
    }
mSensorManager.registerListener(mListener, 
                    SensorManager.SENSOR_ORIENTATION,
                    SensorManager.SENSOR_DELAY_GAME);

わかりました、これは非推奨のコードです。これで、SensorManagergetOrientation()に使用できるメソッドが追加されました。ただし、これには回転行列が必要です。例については、こちらを参照してください。

于 2010-06-04T12:46:33.117 に答える