第一个Android应用程序 – 如何访问指南针

我正在制作我的第一个Android应用程序.作为学习系统的玩具问题,我想制作一个简单的应用程序,使用内置指南针显示手机指向哪个方向的文本.

如何从我的代码访问指南针,并让我的代码知道方向更改?

我相信我需要SensorManager class,但我很困惑如何使用它.我怎么说它我想要指南针传感器?如何告诉它对方向更改执行操作(更新文本)?

解决方法:

// First, get an instance of the SensorManager
SensorManager sMan = (SensorManager) getSystemService(Context.SENSOR_SERVICE);

// Second, get the sensor you're interested in
Sensor magnetField = sMan.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);

// Third, implement a SensorEventListener class
SensorEventListener magnetListener = new SensorEventListener() {
    public void onAccuracyChanged(Sensor sensor, int accuracy) {
        // do things if you're interested in accuracy changes
    }
    public void onSensorChanged(SensorEvent event) {
        // implement what you want to do here
    }
};

// Finally, register your listener
sMan.registerListener(magnetListener, magnetField, SensorManager.SENSOR_DELAY_norMAL);

但请注意,这实际上是一个磁传感器;因此,如果您周围有磁场干扰,则可能指向错误的方向.此外,您需要了解True north和Magnetic north之间的区别.由于此代码使用磁传感器,因此您获得磁北,但如果您需要计算True north,则需要使用GeomagneticField.getDeclination()进行一些调整.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...