Android 传感器(Sensor)API教程 (三) 传感器值取得例程及处理流程
来源:互联网 发布:linux 命令行 用户名 编辑:程序博客网 时间:2024/05/21 12:42
原帖地址:http://www.androidegg.com/portal.php?mod=view&aid=594
1.3.6 传感器的值取得及例程
传感器值取得需要通过SensorManager#registerListener方法对加载SensorEventListener接口的对象进行登录处理。从登录监听器开始到传感器的值取得的动作处理过程如图1-2那样所示。在程序列表1-2中的传感器的值取得,画面处理结果(图1-3)所示。
图1-3 传感器值取得例程运行结果
程序列表1-2 传感器的值取得画面输出例程
package androidegg.stu.sensor;
import java.util.List;
import android.app.Activity;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.widget.TextView;
public class AndroidEggSensorGetValueActivity extends Activity implements SensorEventListener{ //...①
/** Called when the activity is first created. */
private SensorManager sensorManager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//SensorManager的接口取得
sensorManager = (SensorManager)this.getSystemService(SENSOR_SERVICE);
setContentView(R.layout.main);
}
@Override
protected void onResume(){ //...②
super.onResume();
List<Sensor> sensors = sensorManager.getSensorList(Sensor.TYPE_ALL);
//sensor1
for (Sensor s : sensors){
sensorManager.registerListener(this,s,SensorManager.SENSOR_DELAY_NORMAL);
}
}
//
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub
}
@Override
public void onSensorChanged(SensorEvent e) { //...③
// TODO Auto-generated method stub
switch(e.sensor.getType()){
//加速度的值表示
case Sensor.TYPE_ACCELEROMETER:{
TextView x = (TextView)findViewById(R.id.x);
x.setText("x:" + String.valueOf(e.values[SensorManager.DATA_X]));
TextView y = (TextView)findViewById(R.id.y);
y.setText("y:" + String.valueOf(e.values[SensorManager.DATA_Y]));
TextView z =(TextView)findViewById(R.id.z);
z.setText("z:" + String.valueOf(e.values[SensorManager.DATA_Z]));
break;
}
//倾斜度的值表示
case Sensor.TYPE_ORIENTATION:{
TextView x = (TextView)findViewById(R.id.Azimuth);
x.setText("Azimuth" + String.valueOf(e.values[SensorManager.DATA_X]));
TextView y = (TextView)findViewById(R.id.Pitch);
y.setText("Pitch:" + String.valueOf(e.values[SensorManager.DATA_Y]));
TextView z = (TextView)findViewById(R.id.Roll);
z.setText("Roll:" + String.valueOf(e.values[SensorManager.DATA_Z]));
break;
}
//磁力计 的值表示
case Sensor.TYPE_MAGNETIC_FIELD:{
TextView x = (TextView)findViewById(R.id.magnetic_x);
x.setText("x:" + String.valueOf(e.values[SensorManager.DATA_X]));
TextView y = (TextView)findViewById(R.id.magnetic_y);
y.setText("y:" + String.valueOf(e.values[SensorManager.DATA_Y]));
TextView z= (TextView)findViewById(R.id.magnetic_z);
z.setText("z:" + String.valueOf(e.values[SensorManager.DATA_Z]));
break;
}
//温度計の値を表示する
case Sensor.TYPE_TEMPERATURE:{
TextView x = (TextView)findViewById(R.id.degree);
x.setText("Degree:" + String.valueOf(e.values[SensorManager.DATA_X]));
}
}
}
//
@Override
protected void onStop(){
super.onStop(); //...④
sensorManager.unregisterListener(this);
}
}
① 为了取得传感器的值,需要加载SensorEventListener
② 在onResume方法进行监听器的登录
③ 在onSensorChanged方法中取得传感器的值,并在画面表示。
在这个方法中在onResume方法中登录的所有种类的传感器的值都可以取道。判别传感器的种类,将传感器的值用
TextView在画面表示出来。
④ 在onStop方法中接触所有登录的监听器。
您需要登录才可以下载或查看附件
AndroidEgg SensorGetValue.zip
- Android 传感器(Sensor)API教程 (三) 传感器值取得例程及处理流程
- Android 传感器(Sensor)API教程
- Android 传感器(Sensor)API教程
- Android 传感器(Sensor)API教程 (五) 瞬间的加速度值取得
- Android 传感器(Sensor)API教程 (二) 传感器事件
- Android 传感器(Sensor)API教程 (四) 加速度传感器
- Android 传感器(Sensor)API教程 (六) 加速度传感器运用实例
- Android传感器Sensor工作流程
- Android 传感器(Sensor)API教程 (一) 常用方法简介
- Android 传感器(Sensor)API教程 (七) 倾斜加速度
- Android传感器---Motion Sensor(三)
- Android传感器---Motion Sensor(三)
- Android传感器学习三---Position Sensor
- android 传感器 sensor
- Android传感器---Environment Sensor
- Android之sensor 传感器
- Android Sensor(传感器)
- Android传感器---Environment Sensor
- Hibernate分页的实现(支持模糊查询)
- Android 传感器(Sensor)API教程 (二) 传感器事件
- intel IPP编译
- Android 2.1 源码目录结构详解
- android list item divider line
- Android 传感器(Sensor)API教程 (三) 传感器值取得例程及处理流程
- 第十二章 3 字节流
- 关闭quick update 解决MyEclipse 启动时自动更新卡住的问题
- Android SDK 2.3安装图文教程 Android模拟器上网设置
- 畅谈心情
- Overview of InfoSphere CDC
- java反射详解
- Android 传感器(Sensor)API教程 (四) 加速度传感器
- ADW_Launcher的下载和编译注意事项