您的位置:首页 > 移动开发 > Android开发

android 获取所有传感器数据

2012-08-23 10:41 369 查看
main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" ><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="加速度" android:id="@+id/edt1" /><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="磁场" android:id="@+id/edt2" /><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="定位" android:id="@+id/edt3" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="陀螺仪" android:id="@+id/edt4" /><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="光线" android:id="@+id/edt5" /><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="压力" android:id="@+id/edt6" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="温度" android:id="@+id/edt7" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="距离" android:id="@+id/edt8" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="重力" android:id="@+id/edt9" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="线性加速度" android:id="@+id/edt10" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="旋转矢量" android:id="@+id/edt11" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="defalut" android:id="@+id/edt12" /> </LinearLayout>

main.java

/*
*
* IBMEyes.java
* sample code for IBM Developerworks Article
* Author: W. Frank Ableson
* fableson@msiservices.com
*
*/

package com.msi.ibm.eyes;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import android.hardware.Sensor;
import android.hardware.SensorManager;
import android.hardware.SensorListener;

public class IBMEyes extends Activity implements SensorListener {

final String tag = "IBMEyes";
SensorManager sm = null;

TextView View1 = null;
TextView View2 = null;
TextView View3 = null;
TextView View4 = null;
TextView View5 = null;
TextView View6 = null;
TextView View7 = null;
TextView View8 = null;
TextView View9 = null;
TextView View10 = null;
TextView View11 = null;
TextView View12 = null;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
sm = (SensorManager) getSystemService(SENSOR_SERVICE);
setContentView(R.layout.main);
View1 = (TextView) findViewById(R.id.edt1);
View2 = (TextView) findViewById(R.id.edt2);
View3 = (TextView) findViewById(R.id.edt3);
View4 = (TextView) findViewById(R.id.edt4);
View5 = (TextView) findViewById(R.id.edt5);
View6 = (TextView) findViewById(R.id.edt6);
View7 = (TextView) findViewById(R.id.edt7);
View8 = (TextView) findViewById(R.id.edt8);
View9 = (TextView) findViewById(R.id.edt9);
View10 = (TextView) findViewById(R.id.edt10);
View11 = (TextView) findViewById(R.id.edt11);
View12 = (TextView) findViewById(R.id.edt12);
}

public void onSensorChanged(int sensor, float[] values) {
synchronized (this) {
String str = "X:" + values[0] + ",Y:" + values[1] + ",Z:" + values[2];
switch (sensor){
case Sensor.TYPE_ACCELEROMETER:
View1.setText("加速度:" + str);
break;
case Sensor.TYPE_MAGNETIC_FIELD:
View2.setText("磁场:" + str);
break;
case Sensor.TYPE_ORIENTATION:
View3.setText("定位:" + str);
break;
case Sensor.TYPE_GYROSCOPE:
View4.setText("陀螺仪:" + str);
break;
case Sensor.TYPE_LIGHT:
View5.setText("光线:" + str);
break;
case Sensor.TYPE_PRESSURE:
View6.setText("压力:" + str);
break;
case Sensor.TYPE_TEMPERATURE:
View7.setText("温度:" + str);
break;
case Sensor.TYPE_PROXIMITY:
View8.setText("距离:" + str);
break;
case Sensor.TYPE_GRAVITY:
View9.setText("重力:" + str);
break;
case Sensor.TYPE_LINEAR_ACCELERATION:
View10.setText("线性加速度:" + str);
break;
case Sensor.TYPE_ROTATION_VECTOR:
View11.setText("旋转矢量:" + str);
break;
default:
View12.setText("NORMAL:" + str);
break;
}
}
}

public void onAccuracyChanged(int sensor, int accuracy) {
Log.d(tag,"onAccuracyChanged: " + sensor + ", accuracy: " + accuracy);
}

@Override
protected void onResume() {
super.onResume();
sm.registerListener(this,
Sensor.TYPE_ACCELEROMETER |
Sensor.TYPE_MAGNETIC_FIELD |
Sensor.TYPE_ORIENTATION |
Sensor.TYPE_GYROSCOPE |
Sensor.TYPE_LIGHT |
Sensor.TYPE_PRESSURE |
Sensor.TYPE_TEMPERATURE |
Sensor.TYPE_PROXIMITY |
Sensor.TYPE_GRAVITY |
Sensor.TYPE_LINEAR_ACCELERATION |
Sensor.TYPE_ROTATION_VECTOR,
SensorManager.SENSOR_DELAY_NORMAL);
}

@Override
protected void onStop() {
sm.unregisterListener(this);
super.onStop();
} }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: