手机获取仪器数据,Android编程实现获取所有传感器数据的方法

本文实例讲述了Android编程实现获取所有传感器数据的方法。分享给大家供大家参考,具体如下:

main.xml

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/hello"

/>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="加速度"

android:id="@+id/edt1"

/>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="磁场"

android:id="@+id/edt2"

/>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="定位"

android:id="@+id/edt3"

/>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="陀螺仪"

android:id="@+id/edt4"

/>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="光线"

android:id="@+id/edt5"

/>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="压力"

android:id="@+id/edt6"

/>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="温度"

android:id="@+id/edt7"

/>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="距离"

android:id="@+id/edt8"

/>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="重力"

android:id="@+id/edt9"

/>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="线性加速度"

android:id="@+id/edt10"

/>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="旋转矢量"

android:id="@+id/edt11"

/>

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="defalut"

android:id="@+id/edt12"

/>

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();

}

}

希望本文所述对大家Android程序设计有所帮助。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值