Android--从零单排系列(5)--常用传感器的使用
来源:互联网 发布:mysql 导出csv文件 编辑:程序博客网 时间:2024/05/17 07:28
Android系统带的传感器有很多种,需要的话可以直接百度或者谷歌一下,在这里我就简单的举例一个
1,获取系统的传感器
//获取到一个传感器管理器 sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); //获得一个加速度传感器 Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
2,获取系统的传感器
简简单单获取到一个传感器的管理器,然后在获取到加速度的传感器,获取传感器的API有很多这里就列举了一个加速度的传感器,
拿到传感器之后,需要设置监听
sensorManager.registerListener(listener, sensor, SensorManager.SENSOR_DELAY_GAME);
注册传感器的监听一共需要三个参数,第一个是监听器,第二个是加速度传感器,第三个是传感器的灵敏度,传感器的灵敏度一共分为四级,如下,从上往下灵敏度依次降低:
1. SENSOR_DELAY_FASTEST
2. SENSOR_DELAY_GAME
3. SENSOR_DELAY_UI
4. SENSOR_DELAY_NORMAL
OK ,注册完之后,我们还是来看看这个监听器是什么吧:
private SensorEventListener listener = new SensorEventListener() { //当手机的加速度发生变化时调用 @Override public void onSensorChanged(SensorEvent event) { //获取手机在不同方向上加速度的变化 float valuesX = Math.abs(event.values[0]); float valuesY = Math.abs(event.values[1]); float valuesZ = Math.abs(event.values[2]); if (valuesX > 17 || valuesY > 17 || valuesZ > 17) { startAnimation(); playSound(); } } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { } };
这个listener中一共就两个方法,一个是当手机的加速度发生改变的时候调用,还有一个是当传感器的灵敏度发生改变的时候调用,当手机的加速度发生改变的时候,我们可以获取到手机在X 、Y、Z 三个维度上的变化值,拿到这个值之后,我们只需要进行简单的比较即可,如果有任意一个方向的值大于17,则认为有人在晃动手机,这个时候开启动画和声音的播放。
0 0
- Android--从零单排系列(5)--常用传感器的使用
- Android--从零单排系列(2)--常用控件
- Android--从零单排系列(4)--常用对话框和DialogFragment的优势
- Android--从零单排系列(3)--文件读写的操作
- Android--从零单排系列(7)--广播的使用和利用广播进行数据的传递
- Android--从零单排系列(8)--service的使用和利用service进行数据的传递
- Android--从零单排系列(6)--相对应对话框popupwindow的优势和使用
- android从零单排之openFileOutput()使用
- 从零单排5
- Android--从零单排系列(1)--打电话,发短信
- shader从零单排系列(1)
- 从零单排RxAndroid系列-----导包
- 从零单排RxAndroid系列-----定时器
- 从零单排RxAndroid系列-----轮询器
- android从零单排之百度地图的调用
- Android从零单排之5种toast详解
- Android从零单排01_前言
- Android开发从零单排(一)
- 基于imx6q平台移植usbwifi: rt5370sta
- 链表的创建、插入、删除
- 有时候xxx.pch文件全局引入头文件没有提示信息或者引入无效
- Docker 网络(四)——Docker 容器网络
- 乐学成语(数据库的应用)
- Android--从零单排系列(5)--常用传感器的使用
- 数字电子钟实验设计(proteus)
- 在RadASM中导入masm32项目和win32汇编odbc示例
- android 获取视频,图片缩略图的具体实现
- 在本地物理机上访问虚拟机(LNMP环境)上的项目(用的是thinkphp框架)报错处理方法
- android 源码学习(一) 源码目录结构
- 第三方 Cookie
- 美团Android自动化之旅—生成渠道包之打包工具
- Docker 网络(五)——容器网络命名空间