综合示例,包含: //加速传感器 //重力传感器 //邻近传感器 //光线传感器

  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)加速传感器,重力传感器,邻近传感器,光线传感器 综合示例相关推荐

  1. Android 监听重力感应方向传感器改变屏幕方向

    重力感应方向传感器监听事件 /*** @Description: 重力感应方向传感器监听*/ public class OrientationListener implements SensorEve ...

  2. 安卓传感器全解:注册、注销传感器、监听传感器,距离传感器、方向传感器、陀螺仪、加速计、磁场、气压传感器

    全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓传感器全解:注册.注销传感器.监听传感器.距离传感器.方向传感器.陀螺仪.加速计.磁场.气压传感器. 注册.注销.监听传感器 1.自定义传感器监听 ...

  3. abs传感器电压有几伏电_怎样判断abs传感器坏了 万能表测abs传感器好坏

    防抱死制动系统是汽车的一个非常重要的系统.它的功能是防止车轮锁死,防止车辆在刹车困难或结冰的路面上失控.但是,防抱死制动系统上有一个防抱死制动系统传感器,其功能是监控车速.它将车速信息传输到防抱死制动 ...

  4. 超声波传感器特性测量:发送与接收传感器之间的差异

    简 介: 本文针对超声波传感器的测量方法,探讨了使用NanoVNA测量过程, 对比发射和接收传感器在特性方面的不同. 对于整个过程编写了APPLE脚本. 关键词: 超声波传感器,发送,接收,NanoV ...

  5. java采集温湿度水浸_机房水浸传感器:智能生活不可或缺的漏水传感器

    原标题:机房水浸传感器:智能生活不可或缺的漏水传感器 智能化的飞速发展让人们的生活发生了重大改变,为保证机房的安全.稳定.高效运行,网络设备的良好运行状态和设备使用寿命与安全,通常会对网络运行环境的电 ...

  6. 什么是传感器? 传感器由哪几部分组成? 传感器分类?

    文章目录 1.什么是传感器? 2.传感器由哪几部分组成? 3.传感器分类? 1.什么是传感器? 传感器(英文名称:transducer/sensor)是一种检测装置,能感受到被测量的信息,并能将感受到 ...

  7. 【传感器大赏】3轴模拟加速度传感器

    3 Axis Analog Accelerometer ADXL335 是具有信号调节电压输出的轻薄,低功耗,完整功能的 3 轴加速度计. 该产品以 ±3 g 为最小量程测量加速度. 该模块被设计为分 ...

  8. arduino 土壤温湿度传感器_怎样将Arduino与土壤湿度传感器FC-28连接起来

    步骤1:在模拟模式下连接传感器 模拟模式 - 连接土壤湿度传感器和Arduino 要在模拟模式下连接传感器,我们需要使用传感器的模拟输出.从土壤湿度传感器FC-28获取模拟输出时,传感器给出的值为0- ...

  9. 工业传感器新手,主要谈一下工业传感器领域吧!

    工业传感器新手,主要谈一下工业传感器领域吧! 1 欧姆龙,强势产品是光电! 2 斯巴拓,测力和扭矩 3 西克,激光和安全! 4 倍加福,光电类! 5 康耐视,视觉! 6 德力杰,条码和视觉! 7 奥图 ...

最新文章

  1. BAT、讯飞之后,又一国家人工智能开放创新平台诞生了
  2. MIT研究发现:十大最常用数据集标签错误率达3.4%
  3. ceph的数据存储之路(6) -----pg的创建
  4. 顶会论文轮番炸场,本周哪些论文最值得读?
  5. BASIC-9 特殊回文数
  6. 《财富》:盖茨的四项黄金法则
  7. 华为mate40RS能升级鸿蒙,mate40Pro和40RS能用上鸿蒙系统吗
  8. DIV+CSS 入门
  9. jquery js 兄弟父元素的获取
  10. python战斗2:看到一个页面编码
  11. .NetCore 入门篇:理解
  12. 一文详解 MySQL 高可用之 DRBD | 原力计划
  13. Omni Converter全能转换器安装教程
  14. spss因子分析结果解读_AMOS进行问卷分析中效度分析之验证因子分析教程 ——【杏花开生物医药统计】...
  15. 设计资源:一款精美APP原型
  16. maven [INFO] No proxies configured [INFO] No proxy was configured, downloading directly
  17. DOS批处理下格式化日期字符串
  18. 利用python下载视频
  19. 怎么引入oracle驱动包,Maven引入oracle驱动包
  20. 有什么软件可以免费下载歌曲?99%不知道这3款软件!

热门文章

  1. 机器学习及其应用2015 [高新波,张军平 主编] 2015年版
  2. matlab 中simple什么意思,[求助]Matlab2016b里没有simple函数
  3. 一千年的沉睡作者深秋葉蕭蕭
  4. 如何设置亚马逊code促销活动?
  5. 基带信号matlab仿真,基带信号仿真方法上篇
  6. 解决sudo rosdep init 报错的问题
  7. 太白金星:我很关心分布式 Quorum NWR
  8. j - 分组(动态规划)
  9. Oracle connect by与level的使用
  10. Max导Unity Humanoid模型