android传感器的作用主要就是来获取数据,根据得到的数据来触发某种事件

下面就以重力传感器为例;

1,在onCreate中获得传感器服务

private SensorManager sm;// 获得系统的服务private Sensor sensor;// 创建传感器实例@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);// 获得传感器,//通过服务得到传感器管理对象sm = (SensorManager) getSystemService(SENSOR_SERVICE);// 获得默认的传感器sensor = sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);// TYPE_ACCELEROMETER 加速度传感器(重力传感器)类型。// TYPE_ALL 描述所有类型的传感器。// TYPE_GYROSCOPE 陀螺仪传感器类型// TYPE_LIGHT 光传感器类型// TYPE_MAGNETIC_FIELD 恒定磁场传感器类型。// TYPE_ORIENTATION 方向传感器类型。// TYPE_PRESSURE 描述一个恒定的压力传感器类型// TYPE_PROXIMITY 距离(临近性)传感器// TYPE_TEMPERATURE 温度传感器类型描述}

2,当界面显示的时候注册传感器

@Overrideprotected void onResume() {super.onResume();// 当界面显示时,注册注册传感器// 第一个参数是传感器监听器,第二个是需要监听的传感实例// 最后一个参数是监听的传感器速率类型: 一共一下四种形式// SENSOR_DELAY_NORMAL 正常// SENSOR_DELAY_UI 适合界面// SENSOR_DELAY_GAME 适合游戏// SENSOR_DELAY_FASTEST 最快sm.registerListener(this, sensor, SensorManager.SENSOR_DELAY_NORMAL);}

3,当界面消失的时候关闭传感器

@Overrideprotected void onStop() {// TODO Auto-generated method stubsuper.onStop();// 关闭传感器sm.unregisterListener(this);}

4,监听传感器的数据改变 implements SensorEventListener{}

@Override// 传感器获取值发生改变时获取值public void onSensorChanged(SensorEvent event) {float x, y;// TODO Auto-generated method stub// 获取手机的坐标值x = event.values[0];// x轴y = event.values[1];// y轴//z = event.values[2];// z轴// Log.i("event", "onSensorChanged:" + event + "<><>x :<> " + x// + "<><>y:<>" + y);// 判断传感器的方向if (x < -2 && x > -10) {System.out.println("向上");} else if (x > 2 && x < 10) {System.out.println("向下");} else if (y < -2 && y > -10) {System.out.println("向左");} else if (y > 2 && y < 10) {System.out.println("向右");}}@Override// 传感器的精度发生改变时响应此函数public void onAccuracyChanged(Sensor sensor, int accuracy) {// TODO Auto-generated method stub// Log.i("event", "onAccuracyChanged:" + sensor + "<><><><>" +// accuracy);}

其他传感器的使用方式和上述的相似 ,只是获取的传感器不同,监听器中的event.values[0];代表的值不同

更多相关文章

  1. Android(安卓)databinding详解(一)--layout解析
  2. android UI小结(四)
  3. Android(安卓)中Parcelable的作用
  4. android学习笔记NO.3
  5. Android(安卓)第三天(下午)
  6. Android实现双模(CDMA/GSM)手机短信监听的方法
  7. Android监听器的实现方法
  8. 解决NestedScrollView 嵌套 RecyclerView出现的卡顿,上拉刷新无效
  9. android 监听EditText 的变化

随机推荐

  1. android 查看so,jar栈内存使用情况
  2. Android(安卓)Cache 解析
  3. android 基础知识
  4. android maxLines ellipsize 配合使用失
  5. Android(安卓)8.0系统 默认赋予应用权限
  6. android之sharedpreference存储参数
  7. MpAndroidChart简单用法 属性总结
  8. Android之检查网络是否可用(跳转网络设置
  9. android service
  10. Android弹出对话框简单代码