首页技术文章正文

Android+物联网培训之指南针

更新时间:2017-08-01 来源:黑马程序员Android+物联网培训学院 浏览量:

Android设备通过方向传感器可以开发指南针的功能,下面我们来学习指南针开发编写的相关API。
新建工程
【File】——>【new】——>【Android Application Project】命名为:13_指南针
编写代码
  在Activity中,我们首先需要调用系统传感器服务,代码如例1-1:
例1-1
manager =        (SensorManager) getSystemService(SENSOR_SERVICE);
Sensor sensor = manager.getDefaultSensor(Sensor.TYPE_ORIENTATION);
复制代码
  注册服务,代码如例1-2:
manager.registerListener(myListener, sensor, SensorManager.SENSOR_DELAY_FASTEST);
复制代码
例1-2中的myListener是一个服务的监听器,用来监听传感器以及数据的变化,其代码如例1-3所示:
例1-3
public class MyListener implements  SensorEventListener {
    //当传感器的精度发生变化时调用这个方法
        @Override
        public void onAccuracyChanged(Sensor arg0, int arg1) {
        }
    //当传感器检测的数据发生变化时调用这个方法
        @Override
        public void onSensorChanged(SensorEvent arg0) {
        //0=North,90=East,180=South,270=West
         float value = arg0.values[0];
         System.out.println("手机的朝向:===="+value);
        }
}
复制代码
例1-3中通过arg0.values[0]读取手机Y轴与地磁北极的夹角,通过这个值可以判断手机的朝向。运行程序在真机上,效果如如1-1:
  
  当Activity销毁时,解除对应的服务,代码如例1-4:
例1-4
@Override
protected void onDestroy() {
        manager.unregisterListener(myListener);
        super.onDestroy();
}

本文版权归黑马程序员Android+物联网培训学院所有,欢迎转载,转载请注明作者出处。谢谢!
作者:黑马程序员Android+物联网培训学院
首发:http://android.ithaima.com
分享到:
在线咨询 我要报名
和我们在线交谈!