Java android中罗盘的真航向和磁航向?
我想在安卓系统中获得指南针的真实和磁性航向 我已经阅读了很多教程,但没有给出我需要的输出 它只给出了方向 我的代码在这里Java android中罗盘的真航向和磁航向?,java,android,android-sensors,Java,Android,Android Sensors,我想在安卓系统中获得指南针的真实和磁性航向 我已经阅读了很多教程,但没有给出我需要的输出 它只给出了方向 我的代码在这里 public class MainActivity extends Activity implements SensorEventListener { // device sensor manager private SensorManager mSensorManager; TextView tvHeading; @Override protected void o
public class MainActivity extends Activity implements SensorEventListener {
// device sensor manager
private SensorManager mSensorManager;
TextView tvHeading;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// TextView that will tell the user what degree is he heading
tvHeading = (TextView) findViewById(R.id.tvHeading);
// initialize your android device sensor capabilities
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
}
@Override
protected void onResume() {
super.onResume();
// for the system's orientation sensor registered listeners
mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION),
SensorManager.SENSOR_DELAY_GAME);
}
@Override
protected void onPause() {
super.onPause();
// to stop the listener and save battery
mSensorManager.unregisterListener(this);
}
@Override
public void onSensorChanged(SensorEvent event) {
// get the angle around the z-axis rotated
float degree = Math.round(event.values[0]);
tvHeading.setText("Heading: " + Float.toString(degree) + " degrees");
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// not in use
}
}
此代码给出罗盘的准确值
如何修改此代码以获得磁航向和真航向
这里少了什么
任何人都可以帮助我
谢谢这是董事会,投票决定结束。你需要比这多得多的东西才能实现(我想你指的是地理上的)北方。你需要知道你的当前位置和该位置的磁偏差。@西蒙,你能举个例子吗?