Android中传感器Senso的使用
1.Sensor类型
Android中有多种传感器,目前Android SDK支持的传感器有:光线传感器,旋转向量传感器,压力传感器,陀螺仪传感器,加速度传感器,重力传感器,方向传感器,磁场传感器,近程传感器等。但并不是所有手机都具有全部传感器,一般高端手机具有大多数传感器,毕竟传感器都需要money的,价格自然不菲。
2.Sensor实际应用
那么在Android开发中,如何使用传感器,将传感器功能添加到Android应用中呢,例如微信的摇一摇,通过加速传感器,触发寻找附近的人;例如每次接听电话时,当手机靠近耳朵时,手机会黑屏,这就是光线传感器起作用。
3.Sensor使用步骤
4.传感器事件接口
SensorEventListner接口,该接口的onSensorChanged()和onAccuracyChanged()方法用于处理相应的传感器事件
1 public interface SensorEventListener { 2 3 //传感数据变化调用 4 public void onSensorChanged(SensorEvent event); 5 //传感器精准度变化时调用 6 public void onAccuracyChanged(Sensor sensor, int accuracy); 7 }
5.简单代码实现
定义SensorManager
1 SensorManager sensorManager=(SensorManager) getSystemService(SENSOR_SERVICE);
定义一个匿名内部类或者定义一个类实现SensorEventListner接口
1 private SensorEventListener sensorEventListener=new SensorEventListener() { 2 3 @Override 4 public void onSensorChanged(SensorEvent event) { 5 6 float[] values=event.values; 7 float x = values[0]; 8 float y = values[1]; 9 float z = values[2]; 10 } 11 @Override 12 public void onAccuracyChanged(Sensor sensor, int accuracy) { 13 14 } 15 };
注册和关闭传感器监听事件
@Override protected void onResume() { super.onResume(); if(sensorManager!=null){ sensorManager.registerListener(sensorEventListener, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL); } } @Override protected void onPause() { super.onPause(); if(sensorManager!=null){ sensorManager.unregisterListener(sensorEventListener); } }