我在 Android 的硬件罗盘上找不到太多信息。我一直在尝试设置我的标准来强制 Android 使用硬件罗盘。基本上我的问题是即使设备静止时我也希望轴承更新。
据我了解,GPS 只会在您移动时更新您的方位。无论您是否移动,我都希望方位更新。我尝试通过将速度设置为恒定的 10 来欺骗设备,使其认为它正在移动,但轴承始终返回 0.0。
我的测试设备(目前)是 HTC Tattoo。它有一个指南针,所以这不是问题。所以我的问题是,有没有办法使用硬件罗盘来更新方位?不管你搬不搬?
最佳答案
你见过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 .
关于java - Android,使用硬件罗盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2974185/