最近项目里使用到了android中重力感应使用,现分享给大家。
重力感应坐标是相对于设备而言,而不是空间坐标,如图
代码如下;
package com.pioneersoft.temp;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
public class TempActivity extends Activity {
//摇晃速度临界值
private static final int SPEED_SHRESHOLD = 600;
//两次检测的时间间隔
private static final int UPTATE_INTERVAL_TIME = 200;
//上次检测时间
private long lastUpdateTime;
private SensorManager sensorMag;
private Sensor gravitySensor;
//保存上一次记录
float lastX = 0;
float lastY = 0;
float lastZ = 0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initGravitySensor();
}
/**
* 初始化传感器
*/
private void initGravitySensor(){
sensorMag=(SensorManager)getSystemService(Context.SENSOR_SERVICE);
gravitySensor = sensorMag.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
}
@Override
protected void onPause() {
sensorMag.unregisterListener(sensorLis);
super.onPause();
}
@Override
protected void onResume() {
sensorMag.registerListener(sensorLis, gravitySensor, SensorManager.SENSOR_D