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();
}