传感器(7)加速传感器,重力传感器,邻近传感器,光线传感器 综合示例
综合示例,包含: //加速传感器 //重力传感器 //邻近传感器 //光线传感器
1 import android.app.Activity; 2 import android.hardware.Sensor; 3 import android.hardware.SensorEvent; 4 import android.hardware.SensorEventListener; 5 import android.hardware.SensorManager; 6 import android.os.Bundle; 7 import android.util.Log; 8 import android.widget.TextView; 9 10 public class MotionSensorActivity extends Activity 11 //第1步, 实现传感器事件接口,其中的两个onSensorChanged和onAccuracyChanged 12 implements SensorEventListener { 13 14 //第2步, 准备相关成员变量 15 private TextView tvAccelerometer;//用于显示结果 16 private SensorManager mSensorManager;//管理motion senser 17 private float gravity_X,gravity_Y,gravity_Z;//重力传感器返回的数据 分别代表x,y,z轴 18 19 @Override 20 protected void onCreate(Bundle savedInstanceState) { 21 super.onCreate(savedInstanceState); 22 setContentView(R.layout.activity_motion_sensor); 23 24 tvAccelerometer = (TextView) findViewById(R.id.tvAccelerometer); 25 26 //第3步, 得到SensorManager 27 mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); 28 29 } 30 //一般在当前窗口显示时老注意传感器广播接收器 31 protected void onResume() { 32 super.onResume(); 33 34 //第4步, 注册相关传感器 35 //加速传感器 36 Sensor accel = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); 37 //registerListener 第三个参数 有4个值,敏感度也不一样,0-3,低最敏感.SENSOR_DELAY_UI是2 38 mSensorManager.registerListener(this,accel,SensorManager.SENSOR_DELAY_UI); 39 40 //重力传感器 41 Sensor gravity = mSensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY); 42 mSensorManager.registerListener(this,gravity,SensorManager.SENSOR_DELAY_FASTEST); 43 44 //邻近传感器 45 Sensor proximity = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY); 46 mSensorManager.registerListener(this,proximity,SensorManager.SENSOR_DELAY_UI); 47 48 //光线传感器 49 Sensor light = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT); 50 mSensorManager.registerListener(this,light,SensorManager.SENSOR_DELAY_UI); 51 } 52 //实现传感器事件接口 传感器感触到精确度变化. 53 @Override 54 public void onAccuracyChanged(Sensor sensor, int accuracy) { 55 56 } 57 //实现传感器事件接口 传感器感触到数据变化. 58 @Override 59 public void onSensorChanged(SensorEvent event) { 60 //第5步, 处理传回来的数据 61 switch (event.sensor.getType()) { 62 case Sensor.TYPE_ACCELEROMETER: //加速度传感器 63 final float alpha = 0.8f; 64 gravity_X = alpha * gravity_X + (1 - alpha) * event.values[0]; 65 gravity_Y = alpha * gravity_Y + (1 - alpha) * event.values[1]; 66 gravity_Z = alpha * gravity_Z + (1 - alpha) * event.values[2]; 67 68 String accelerometer = "加速度\n" 69 + "X:" + (event.values[0] - gravity_X) + "\n" 70 + "Y:" + (event.values[1] - gravity_Y) + "\n" 71 + "Z:" + (event.values[2] - gravity_Z); 72 73 Log.d("z", String.valueOf(event.values[2] - gravity_Z)); 74 tvAccelerometer.setText(accelerometer); 75 76 break; 77 case Sensor.TYPE_GRAVITY://重力传感器 78 gravity_X = event.values[0]; 79 gravity_Y = event.values[1]; 80 gravity_Z = event.values[2]; 81 break; 82 case Sensor.TYPE_PROXIMITY://邻近传感器 83 setTitle(String.valueOf(event.values[0])); 84 break; 85 case Sensor.TYPE_LIGHT: 86 tvAccelerometer.append("\n"+event.values[0]+"\n"); 87 break; 88 default: 89 break; 90 } 91 92 } 93 //一般在当前窗口关闭时取消注册. 94 //第6步, 取消注册 95 @Override 96 protected void onPause() { 97 super.onPause(); 98 mSensorManager.unregisterListener(this); 99 } 100 }
import android.app.Activity;import android.hardware.Sensor;import android.hardware.SensorEvent;import android.hardware.SensorEventListener;import android.hardware.SensorManager;import android.os.Bundle;import android.util.Log;import android.widget.TextView;
public class MotionSensorActivity extends Activity //第1步, 实现传感器事件接口,其中的两个onSensorChanged和onAccuracyChangedimplements SensorEventListener {
//第2步, 准备相关成员变量private TextView tvAccelerometer;//用于显示结果private SensorManager mSensorManager;//管理motion senserprivate float gravity_X,gravity_Y,gravity_Z;//重力传感器返回的数据 分别代表x,y,z轴
@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_motion_sensor);
tvAccelerometer = (TextView) findViewById(R.id.tvAccelerometer);//第3步, 得到SensorManagermSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
}//一般在当前窗口显示时老注意传感器广播接收器protected void onResume() {super.onResume();//第4步, 注册相关传感器//加速传感器Sensor accel = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);//registerListener 第三个参数 有4个值,敏感度也不一样,0-3,低最敏感.SENSOR_DELAY_UI是2mSensorManager.registerListener(this,accel,SensorManager.SENSOR_DELAY_UI);//重力传感器Sensor gravity = mSensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY);mSensorManager.registerListener(this,gravity,SensorManager.SENSOR_DELAY_FASTEST);//邻近传感器Sensor proximity = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);mSensorManager.registerListener(this,proximity,SensorManager.SENSOR_DELAY_UI);//光线传感器Sensor light = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);mSensorManager.registerListener(this,light,SensorManager.SENSOR_DELAY_UI);}//实现传感器事件接口 传感器感触到精确度变化.@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) {
}//实现传感器事件接口 传感器感触到数据变化.@Overridepublic void onSensorChanged(SensorEvent event) {//第5步, 处理传回来的数据switch (event.sensor.getType()) {case Sensor.TYPE_ACCELEROMETER: //加速度传感器final float alpha = 0.8f;gravity_X = alpha * gravity_X + (1 - alpha) * event.values[0];gravity_Y = alpha * gravity_Y + (1 - alpha) * event.values[1];gravity_Z = alpha * gravity_Z + (1 - alpha) * event.values[2];
String accelerometer = "加速度\n" + "X:" + (event.values[0] - gravity_X) + "\n" + "Y:" + (event.values[1] - gravity_Y) + "\n" + "Z:" + (event.values[2] - gravity_Z);Log.d("z", String.valueOf(event.values[2] - gravity_Z));tvAccelerometer.setText(accelerometer);break;case Sensor.TYPE_GRAVITY://重力传感器gravity_X = event.values[0];gravity_Y = event.values[1];gravity_Z = event.values[2];break;case Sensor.TYPE_PROXIMITY://邻近传感器setTitle(String.valueOf(event.values[0]));break;case Sensor.TYPE_LIGHT:tvAccelerometer.append("\n"+event.values[0]+"\n");break;default:break;}
}//一般在当前窗口关闭时取消注册.//第6步, 取消注册@Overrideprotected void onPause() {super.onPause();mSensorManager.unregisterListener(this);}}
转载于:https://www.cnblogs.com/sjjg/p/4780439.html
传感器(7)加速传感器,重力传感器,邻近传感器,光线传感器 综合示例相关推荐
- Android 监听重力感应方向传感器改变屏幕方向
重力感应方向传感器监听事件 /*** @Description: 重力感应方向传感器监听*/ public class OrientationListener implements SensorEve ...
- 安卓传感器全解:注册、注销传感器、监听传感器,距离传感器、方向传感器、陀螺仪、加速计、磁场、气压传感器
全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓传感器全解:注册.注销传感器.监听传感器.距离传感器.方向传感器.陀螺仪.加速计.磁场.气压传感器. 注册.注销.监听传感器 1.自定义传感器监听 ...
- abs传感器电压有几伏电_怎样判断abs传感器坏了 万能表测abs传感器好坏
防抱死制动系统是汽车的一个非常重要的系统.它的功能是防止车轮锁死,防止车辆在刹车困难或结冰的路面上失控.但是,防抱死制动系统上有一个防抱死制动系统传感器,其功能是监控车速.它将车速信息传输到防抱死制动 ...
- 超声波传感器特性测量:发送与接收传感器之间的差异
简 介: 本文针对超声波传感器的测量方法,探讨了使用NanoVNA测量过程, 对比发射和接收传感器在特性方面的不同. 对于整个过程编写了APPLE脚本. 关键词: 超声波传感器,发送,接收,NanoV ...
- java采集温湿度水浸_机房水浸传感器:智能生活不可或缺的漏水传感器
原标题:机房水浸传感器:智能生活不可或缺的漏水传感器 智能化的飞速发展让人们的生活发生了重大改变,为保证机房的安全.稳定.高效运行,网络设备的良好运行状态和设备使用寿命与安全,通常会对网络运行环境的电 ...
- 什么是传感器? 传感器由哪几部分组成? 传感器分类?
文章目录 1.什么是传感器? 2.传感器由哪几部分组成? 3.传感器分类? 1.什么是传感器? 传感器(英文名称:transducer/sensor)是一种检测装置,能感受到被测量的信息,并能将感受到 ...
- 【传感器大赏】3轴模拟加速度传感器
3 Axis Analog Accelerometer ADXL335 是具有信号调节电压输出的轻薄,低功耗,完整功能的 3 轴加速度计. 该产品以 ±3 g 为最小量程测量加速度. 该模块被设计为分 ...
- arduino 土壤温湿度传感器_怎样将Arduino与土壤湿度传感器FC-28连接起来
步骤1:在模拟模式下连接传感器 模拟模式 - 连接土壤湿度传感器和Arduino 要在模拟模式下连接传感器,我们需要使用传感器的模拟输出.从土壤湿度传感器FC-28获取模拟输出时,传感器给出的值为0- ...
- 工业传感器新手,主要谈一下工业传感器领域吧!
工业传感器新手,主要谈一下工业传感器领域吧! 1 欧姆龙,强势产品是光电! 2 斯巴拓,测力和扭矩 3 西克,激光和安全! 4 倍加福,光电类! 5 康耐视,视觉! 6 德力杰,条码和视觉! 7 奥图 ...
最新文章
- BAT、讯飞之后,又一国家人工智能开放创新平台诞生了
- MIT研究发现:十大最常用数据集标签错误率达3.4%
- ceph的数据存储之路(6) -----pg的创建
- 顶会论文轮番炸场,本周哪些论文最值得读?
- BASIC-9 特殊回文数
- 《财富》:盖茨的四项黄金法则
- 华为mate40RS能升级鸿蒙,mate40Pro和40RS能用上鸿蒙系统吗
- DIV+CSS 入门
- jquery js 兄弟父元素的获取
- python战斗2:看到一个页面编码
- .NetCore 入门篇:理解
- 一文详解 MySQL 高可用之 DRBD | 原力计划
- Omni Converter全能转换器安装教程
- spss因子分析结果解读_AMOS进行问卷分析中效度分析之验证因子分析教程 ——【杏花开生物医药统计】...
- 设计资源:一款精美APP原型
- maven [INFO] No proxies configured [INFO] No proxy was configured, downloading directly
- DOS批处理下格式化日期字符串
- 利用python下载视频
- 怎么引入oracle驱动包,Maven引入oracle驱动包
- 有什么软件可以免费下载歌曲?99%不知道这3款软件!