4

我在 Android 的硬件指南针上找不到太多信息。我一直在尝试设置我的标准以强制 Android 使用硬件指南针。基本上我的问题是我希望即使设备静止也能更新轴承。

据我了解,GPS 只会在您移动时更新您的方位。无论您是否搬家,我都愿意更新。我试图通过将速度设置为常数 10 来欺骗设备,使其认为它正在移动,但轴承始终返回 0.0。

我的测试设备(目前)是 HTC 纹身。它有一个指南针,所以这不是问题。所以我的问题是,有没有办法使用硬件罗盘来更新方位?不管你搬不搬?

4

1 回答 1

2

你看过这个示例代码吗?这里 aSensorListener用于查询方向:

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);

好的,所以这是不推荐使用的代码。现在 SensorManager 有一个getOrientation()可以使用的方法。不过,这确实需要一个旋转矩阵。有关示例,请参见此处。

于 2010-06-04T12:46:33.117 回答