首页 > 代码库 > Android中传感器Sensor的使用
Android中传感器Sensor的使用
Android中传感器Senso的使用
1.Sensor类型
Android中有多种传感器,目前Android SDK支持的传感器有:光线传感器,旋转向量传感器,压力传感器,陀螺仪传感器,加速度传感器,重力传感器,方向传感器,磁场传感器,近程传感器等。但并不是所有手机都具有全部传感器,一般高端手机具有大多数传感器,毕竟传感器都需要money的,价格自然不菲。
2.Sensor实际应用
那么在Android开发中,如何使用传感器,将传感器功能添加到Android应用中呢,例如微信的摇一摇,通过加速传感器,触发寻找附近的人;例如每次接听电话时,当手机靠近耳朵时,手机会黑屏,这就是光线传感器起作用。
3.Sensor使用步骤
- 获取传感器管理对象SensorManager
- 创建传感器事件接听器的类,该类必须实现android.hardware.SensorEventListner接口
- 使用SensorManager.registerListener方法注册指定的传感器
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 @Override12 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); } }
Android中传感器Sensor的使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。