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"/>