android g-sensor上层接口

 http://www.oschina.net/code/snippet_12_687

http://my.csdn.net/evoshark/code/detail/10119

http://www.coding8.com/home/detail/49/8a017f2d309b42e101309b4326e00638.html


//1、取得重力感应器Sensor对象
//在 Activity 中定义以下成员变量:
private SensorManager mManager = null;
private Sensor mSensor = null;


//以下代码加入到 onCreate() 方法中:
mManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);


mSensor = manager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);


//2、创建监听器
//在 Activity 中定义以下成员变量:
private SensorEventListener mListener = null;


//以下代码加入到 onCreate() 方法中:
mListener = new SensorEventListener() {
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}


public void onSensorChanged(SensorEvent event) {
float x = event.values[SensorManager.DATA_X];
float y = event.values[SensorManager.DATA_Y];
float z = event.values[SensorManager.DATA_Z];
doSomething(x, y, z);
}
};


//3、注册监听器
//以下代码加入到 onResume() 方法中:
mManager.registerListener(mListener, mSensor, SensorManager.SENSOR_DELAY_GAME);


//这里 SENSOR_DELAY_GAME 还可以是以下常量:
//SENSOR_DELAY_FASTEST
//SENSOR_DELAY_UI
//SENSOR_DELAY_NORMAL


//4、取消监听器
//以下代码加入到 onPause() 方法中:

mManager.unregisterListener(mListener);


ps:

描述:android中的很多游戏的游戏都使用了重力感应的技术,就研究了一下重力感应 以屏幕的左下方为原点,箭头指向的方向为正。从-10到10,以浮点数为等级单位,想象以下情形: 手机屏幕向上(z轴朝天)水平放置的时侯,(x,y,z)的值分别为(0,0,10); 手机屏幕向下(z轴朝地)水平放置的时侯,(x,y,z)的值分别为(0,0,-10); 手机屏幕向左侧放(x轴朝天)的时候,(x,y,z)的值分别为(10,0,0); 手机竖直(y轴朝天)向上的时候,(x,y,z)的值分别为(0,10,0); 其他的如此类推,规律就是:朝天的就是正数,朝地的就是负数。 利用x,y,z三个值求三角函数,就可以精确检测手机的运动状态了。

你可能感兴趣的:(android g-sensor上层接口)