Android 上电子罗盘的数据获取非常的简单, 它会返回一个值给我们, 而这个值就是度数。
我们只需要一个成员变量
Private SensorManager sensorManager;
该变量管理手机中的传感器信息。
Public void onCreate(Bundle b)
{
//获取系统服务管理
sensorManager = (SensorManager)getSysytemService(SENSOR_SERVICE);
}
这里我们还需要注册一下, 在OnResume重载成员方法中
@Override
protected void onResume()
{
//使用方向传感器
sensorManager.registerListener(selistener, sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION), SensorManager.SENSOR_DELAY_NOMAL);
super.onResume();
}
@Override
protectedvoid onPause()
{
//卸载传感器事件
sensor.unregisterListener(selistener);
super.onPause();
}
//传感器消息触发事件
privatefinal SensorEventListener selistener = new SensorEventListener()
{
publicvoid onSensorChanged(SensorEvent event)
{
mAngle= event.values[SensorManager.DATA_X];
textSensor.setText("角度:" + mAngle);
}
publicvoid onAccuracyChanged(Sensor sensor, int accuracy)
{
}
};
最后再加一个在AndroidManifest.xml 的</application> 下面, 允许程序使用传感器
<uses-permission android:name="android.permission.UPDATE_DEVICE_STATS"/>