首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

android学习之传感器的根本使用

2012-07-19 
android学习之传感器的基本使用import java.util.Listimport android.app.Activityimport android.hardw

android学习之传感器的基本使用

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;public class Activity01 extends Activity implements SensorEventListener{private booleanmRegisteredSensor;//定义SensorManagerprivate SensorManagermSensorManager;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);mRegisteredSensor = false;//取得SensorManager实例mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);}@Overrideprotected void onResume(){super.onResume();//接受SensorManager的一个列表(Listener)//这里我们指定类型为TYPE_ORIENTATION(方向感应器)List<Sensor> sensors = mSensorManager.getSensorList(Sensor.TYPE_ORIENTATION);if (sensors.size() > 0){Sensor sensor = sensors.get(0);//注册SensorManager//this->接收sensor的实例//接收传感器类型的列表//接受的频率mRegisteredSensor = mSensorManager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_FASTEST);}}@Overrideprotected void onPause(){if (mRegisteredSensor){//如果调用了registerListener//这里我们需要unregisterListener来卸载\取消注册mSensorManager.unregisterListener(this);mRegisteredSensor = false;}super.onPause();}//当进准度发生改变时//sensor->传感器//accuracy->精准度@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy){}// 当传感器在被改变时触发@Overridepublic void onSensorChanged(SensorEvent event){// 接受方向感应器的类型if (event.sensor.getType() == Sensor.TYPE_ORIENTATION){//这里我们可以得到数据,然后根据需要来处理//由于模拟器上面无法测试效果,因此我们暂时不处理数据float x = event.values[SensorManager.DATA_X];float y = event.values[SensorManager.DATA_Y];float z = event.values[SensorManager.DATA_Z];}}}

?来源:android应用开发揭秘

热点排行