获取重力传感器的值大小并显示出来:
代码:MainActivity.java
package com.example.example;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView grivaty;
private SensorManager sensorMgr = null;
private float x,y,z;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initUI();
}
private void initUI() {
// TODO Auto-generated method stub
grivaty = (TextView)findViewById(R.id.grivaty);
//通过服务得到传感器管理对象
sensorMgr = (SensorManager) getSystemService(SENSOR_SERVICE);
//得到重力传感器实例
//TYPE_ACCELEROMETER 加速度传感器(重力传感器)类型。
//TYPE_ALL 描述所有类型的传感器。
//TYPE_GYROSCOPE 陀螺仪传感器类型
//TYPE_LIGHT 光传感器类型
//TYPE_MAGNETIC_FIELD 恒定磁场传感器类型。
//TYPE_ORIENTATION 方向传感器类型。
//TYPE_PRESSURE 描述一个恒定的压力传感器类型
//TYPE_PROXIMITY 常量描述型接近传感器
//TYPE_TEMPERATURE 温度传感器类型描述
final Sensor sensor = sensorMgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
SensorEventListener lsn = new SensorEventListener() {
@SuppressWarnings("deprecation")
//传感器获取值改变时响应此函数
public void onSensorChanged(SensorEvent e) {
x = e.values[SensorManager.DATA_X];
y = e.values[SensorManager.DATA_Y];
z = e.values[SensorManager.DATA_Z];
// getsensor();
grivaty.setText("x=" + x + " y=" + y + " z=" + z );//左右x值,左正右负,前后位y值,前负后正
}
public void onAccuracyChanged(Sensor s, int accuracy) {
}
};
//注册listener,第三个参数是检测的精确度
sensorMgr.registerListener(lsn, sensor, SensorManager.SENSOR_DELAY_GAME);
}
}
布局文件:main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:id="@+id/grivaty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</RelativeLayout>