【问题标题】:Android, Using the hardware compassAndroid, 使用硬件指南针
【发布时间】:2010-06-04 12:41:59
【问题描述】:

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

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

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

【问题讨论】:

    标签: java android sensors


    【解决方案1】:

    你见过this example code吗?这里使用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() 方法。不过,这确实需要一个旋转矩阵。见here for an example

    【讨论】:

    • 那是在使用折旧的API,没有别的办法吗?
    • 抱歉,我已经离开 Android 几个月了。我看到现在有一​​个SensorManager.getOrientation(float[]) 方法。
    • 这就是我要找的!谢谢! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    • 2014-09-25
    • 1970-01-01
    相关资源
    最近更新 更多