安卓系统,使用硬件指南针

4
我在Android的硬件罗盘方面找不到太多信息。我一直试图设置我的标准,以强制Android使用硬件罗盘。基本上我的问题是,即使设备静止,我也希望方位角度能够更新。
据我了解,GPS只会在移动时更新您的方位角度。我希望无论是否移动,都可以更新方位角度。我试图通过将速度设置为恒定的10来欺骗设备,但方位角始终返回0.0。
我的测试设备(目前)是HTC Tattoo。它配有指南针,所以那不是问题。因此,我的问题是,是否有办法使用硬件罗盘更新方位角度,无论您是否移动?
1个回答

2

你看过这个示例代码吗?这里使用了一个SensorListener来查询方向:

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()方法。但是这确实需要一个旋转矩阵。请参见此处示例


那是使用过时的API,没有其他方法吗? - Skizit
抱歉,我已经离开Android几个月了。我看到现在有一个SensorManager.getOrientation(float[])方法。 - Marc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接