安卓獲取重力加速度例子
package uni.sensor;
import java.util.Iterator;
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.util.Log;
public class SensorDemoActivity extends Activity {
//設置LOG標籤
private static final String TAG = "sensor";
private SensorManager sm;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//創建一個SensorManager來獲取系統的傳感器服務
sm = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
//選取加速度感應器
int sensorType = Sensor.TYPE_ACCELEROMETER;
sm.registerListener(myAccelerometerListener,sm.getDefaultSensor(sensorType),SensorManager.SENSOR_DELAY_NORMAL);
}
final SensorEventListener myAccelerometerListener = new SensorEventListener(){
//複寫onSensorChanged方法
public void onSensorChanged(SensorEvent sensorEvent){
if(sensorEvent.sensor.getType() == Sensor.TYPE_ACCELEROMETER){
Log.i(TAG,"onSensorChanged");
//圖解中已經解釋三個值的含義
float X_lateral = sensorEvent.values[0];
float Y_longitudinal = sensorEvent.values[1];
float Z_vertical = sensorEvent.values[2];
Log.i(TAG,"\n heading "+X_lateral);
Log.i(TAG,"\n pitch "+Y_longitudinal);
Log.i(TAG,"\n roll "+Z_vertical);
}
}
//複寫onAccuracyChanged方法
public void onAccuracyChanged(Sensor sensor , int accuracy){
Log.i(TAG, "onAccuracyChanged");
}
};
public void onPause(){
sm.unregisterListener(myAccelerometerListener);
super.onPause();
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.