Android之传感器使用总结
2015-11-26 09:24
861 查看
Android中使用传感器是非常简单的,首先获取到一个SensorManager对象,然后使用SensorManager对象获取到具体的传感器,给SensorManager注册一个监听事件并且在不需要的时候解注册就搞定了。下面来看具体的使用:
获取SensorManager对象:
获取到手机支持的传感器集合:
用公司的手机测试了一下发现这个手机比较旧只有3个传感器,分别为光强传感器、加速度传感器、距离传感器。今天就以光线传感器为例来介绍使用。
1、获取光传感器:
2、定义一个监听接口:
3、给SensorManager注册监听事件:
其中第三个参数为样例级别,有四种:
从上往下依次采样频率变低,一般使用第二种,不推荐使用第一种。
4、解注册:
别的传感器使用套路是一样的,无非就是获取传感器类型不一样,values[]数组的值代表的含义不一样。最后附上Demo:点击下载
获取SensorManager对象:
//得到sensorManager对象 sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
获取到手机支持的传感器集合:
//获取到所有的传感器 List sensorList = sensorManager.getSensorList(Sensor.TYPE_ALL); for (int i = 0; i < sensorList.size(); i++) { Sensor sensor= (Sensor) sensorList.get(i); Log.e("MainActivity",sensor.getName()); }
用公司的手机测试了一下发现这个手机比较旧只有3个传感器,分别为光强传感器、加速度传感器、距离传感器。今天就以光线传感器为例来介绍使用。
1、获取光传感器:
//获取光线传感器 sensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
2、定义一个监听接口:
//创建一个传感器事件对象 sensorEventListener = new SensorEventListener() { //传感器精度改变时调用 @Override public void onSensorChanged(SensorEvent event) { Log.e(TAG, "onSensorChanged"); //精度 int accuracy = event.accuracy; //时间戳 long timestamp = event.timestamp; //传感器的值,不同的传感器代表不同的消息 float[] values = event.values; for (int i = 0; i < values.length; i++) { txtv.setText("光照强度为:"+values[0]); } } //传感器信息改变时调用 @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { Log.e(TAG, "精度改变了:" + accuracy); } };
3、给SensorManager注册监听事件:
//注册 sensorManager.registerListener(sensorEventListener, sensor, SensorManager.SENSOR_DELAY_GAME);
其中第三个参数为样例级别,有四种:
从上往下依次采样频率变低,一般使用第二种,不推荐使用第一种。
4、解注册:
@Override protected void onDestroy() { super.onDestroy(); //解注册 sensorManager.unregisterListener(sensorEventListener); }
别的传感器使用套路是一样的,无非就是获取传感器类型不一样,values[]数组的值代表的含义不一样。最后附上Demo:点击下载
相关文章推荐
- android如何实现按钮的点击水波纹效果:
- Android Manifest标签之activity
- Android 4.4 Graphic系统详解(2) VSYNC的生成
- Android4.4深入浅出之SurfaceFlinger总体结构
- Android 四大组件之BroadCastReceiver
- Android ListView点击之后保持更换的背景色,实现已读功能
- 解决android4.0系统中菜单(Menu)添加Icon无效问题
- 让Android Wear原生app适配Moto360国行版
- Android 获取联系人详解
- android上实现富文本
- android 上传头像
- Android开发 Volley通讯与Gson解析
- 关于最新版的android studio 中的Butterknife 中不能使用的问题
- android jni
- Android Studio tips
- 调用startActivityForResult,onActivityResult无响应的问题
- Android 开发定位Demo
- 挑战独立开发项目能力___ITlanbao
- 蜂窝教育:Android影响在扩大,现在需把握先机
- Android SoundPool 的简单使用