我正在制作我的第一个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()进行一些调整.
原文地址:https://www.jb51.cc/android/1071453.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。