获取重力传感器的值大小并显示出来:
代码: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;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);initUI();}private void initUI() {// TODO Auto-generated method stubgrivaty = (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="/apk/res/android"xmlns:tools="/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" ><TextViewandroid:id="@+id/grivaty"android:layout_width="wrap_content"android:layout_height="wrap_content"/></RelativeLayout>