android 气压传感器

我认为最有趣的主题之一是如何在Android中使用Sensor 。 如今,我们的智能手机充满了传感器,我们可以用它来控制我们的应用程序。 最常见的传感器是:

  • 全球定位系统
  • 接近传感器
  • 光传感器
  • 温度感应器
  • 气压计传感器
  • NFC

仅提及其中一些。 在这篇文章中,我们将解释如何获取传感器列表以及如何使用其中一个传感器 (即Barometer sensor )。 我们想要创建一个显示当前压力的应用程序:

在Android中使用传感器

当我们开发一个android应用程序时,我们需要一个特定的传感器,以便我们的应用程序可以运行,我们有两种不同的选择:

  • 在AndroidManifest.xml中将其指定为传感器
  • 检测传感器列表并检查我们感兴趣的传感器列表是否可用

如果我们在AndroidManifest.xml中指定它,则只需添加以下行:

选择“ 用户功能”后 ,我们将:

我们也可以检索传感器列表,我们需要一些代码。

@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// Get the reference to the sensor managersensorManager = (SensorManager) getSystemService(Service.SENSOR_SERVICE);// Get the list of sensor List<Sensor> sensorList = sensorManager.getSensorList(Sensor.TYPE_ALL);List<Map<String, String>> sensorData = new ArrayList<Map<String,String>>();for (Sensor sensor: sensorList) {Map<String, String> data = new HashMap<String, String>();data.put("name", sensor.getName());data.put("vendor", sensor.getVendor());sensorData.add(data);}
}

在第7行,我们获得用于处理传感器的SensorManager的引用,然后在第10行,我们获得传感器列表。 在这种情况下,我们希望智能手机中包含所有传感器,因此我们使用Sensor.TYPE_ALL。 如果只想一次,我们可以过滤列表,使其通过我们要寻找的传感器类型。 例如,如果我们要拥有所有的气压计传感器,则可以使用:

List<Sensor> sensorList = sensorManager.getSensorList(Sensor.TYPE_PRESSURE);

有了列表后,我们可以简单地使用ListView和SimpleAdapter来显示它。 结果(在我的智能手机中)是

现在做什么? 我们可以从Sensor类中获取一些信息,例如供应商传感器分辨率,最小和最大范围。 您必须谨记,不同传感器之间的传感器范围会有所不同。 获得列表后,我们可以检查智能手机是否支持我们的传感器。 现在我们有了传感器,我们希望从传感器获取信息。

传感器事件

要从传感器获取信息,有一个简单的方法:注册一个侦听器。 首先,我们必须选择我们感兴趣的传感器,然后注册我们的侦听器。 在我们的案例中,我们对气压计传感器很感兴趣,因此我们有:

// Look for barometer sensor
SensorManager snsMgr = (SensorManager) getSystemService(Service.SENSOR_SERVICE);
Sensor pS = snsMgr.getDefaultSensor(Sensor.TYPE_PRESSURE);
snsMgr.registerListener(this, pS, SensorManager.SENSOR_DELAY_UI);

在第4行,我们注册了侦听器。 请注意,最后一个参数表示当传感器测量的值更改时,我们希望多快收到通知。 有多个值,但请注意,通知速度过快可能会对您的应用产生一些副作用。 要将一个类注册为侦听器,我们只需实现一个接口SensorEventListener例如:

public class PressActivity extends Activity implements SensorEventListener {@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) {}@Overridepublic void onSensorChanged(SensorEvent event) {float[] values = event.values;pressView.setText("" + values[0]);}
}

在第3行中,我们重写了精度更改时调用的方法。 此参数表示我们从传感器获得的值的置信度。 另一个方法(更有趣)是onSensorChanged,当值更改时将调用它。 在这种情况下,我们只需获取第一个值e即可在TextVIew中显示它。 结果如下所示:

例如,典型的应用程序可以显示压力趋势,以了解太阳是否会避开或我们是否会出现云。

源代码即将发布。

参考: Android传感器教程:来自我们JCG合作伙伴 Francesco Azzola的气压计传感器 ,位于Surviving w / Android博客上。

翻译自: https://www.javacodegeeks.com/2013/09/android-sensor-tutorial-barometer-sensor.html

android 气压传感器

android 气压传感器_Android传感器教程:气压计传感器相关推荐

  1. android 语音识别_Android语音识别教程

    android 语音识别 您可能听说过" Google Now项目" ,在这里您可以发出语音命令,Android会为您获取结果. 它可以识别您的声音并将其转换为文本或采取适当的措施 ...

  2. Android传感器教程:气压计传感器

    我认为最有趣的主题之一是如何在Android中使用Sensor . 如今,我们的智能手机充满了传感器,我们可以用它来控制我们的应用程序. 最常见的传感器是: 全球定位系统 接近传感器 光传感器 温度感 ...

  3. Android传感器应用——重力传感器实现滚动的弹球

    一. 问题描述 Android中有多达11种传感器,不同的手机设备支持的传感器类型也不尽相同 1. 重力传感器 GV-sensor 2. 加速度传感器 G-sensor 3.  磁力传感器  M-se ...

  4. android开发笔记之高级主题—传感器的简单介绍

    今天我们开始进入讲解android中的一些高级主题的用法,比如传感器.GPS.NFC.语音和人脸识别等. 这次来对传感器的一个简单介绍: Android平台支持三大类的传感器: 位移传感器 这些传感器 ...

  5. Android 传感器 II-运动传感器

    概述: Android平台提供了一些传感器让我们可以监测设备的运动情况. 其中的两种总是基于硬件的(加速度计和陀螺仪), 其中的三个是能软能硬的(重力计, 线性加速计和旋转矢量传感器). 比如, 在一 ...

  6. ESP32教程——霍尔效应传感器

    ESP32 开发板具有一些内置传感器,如电容式触摸传感器和霍尔效应传感器.在本教程中,我们将讨论霍尔效应传感器中的一个内置传感器. 霍尔效应传感器用于检测其周围磁场的变化. 霍尔传感器 霍尔传感器与阈 ...

  7. Android - 小功能 - 传感器之重力传感器

      一:什么是传感器: 所谓传感器能够探测如光.热.温度.重力.方向 等等的功能!         二:Android中提供传感器有哪些: 1.  加速度传感器(重力传感器)         2.   ...

  8. Android app如何使用 有效运动传感器

    背景 今天有对设备的运动 跌落的检测 这里简单的了解了系统的传感器接口 有如下几个接口 对大家进行推荐 Android 平台提供多种传感器,可让您监视设备的运动. 传感器的可能架构因传感器类型而异: ...

  9. bmp180气压传感器工作原理_各种传感器工作原理汇总

    压阻式传感器测量液位的工作原理 ▼ MQN型气敏电阻结构及测量电路 ▼ 气泡式水平仪的工作原理 ▼ 扩散硅式压力传感器 ▼ 应变加速度感应器 ▼ 称重式料位计 ▼ 电子皮带秤重示意图 ▼ 电子吊车秤 ...

最新文章

  1. 企业Shell实战-MySQL分库分表备份脚本
  2. 怀旧服湖畔镇服务器位置,《魔兽世界怀旧服》今天再开10组新服 47组服务器免费转服开启...
  3. wxWidgets:wxCalculateLayoutEvent类用法
  4. mysql快速上手3
  5. 前端学习(2674):vue3修改
  6. 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 23丨向CEO汇报工作的人【难度中等】​
  7. celery-04-操作b-执行人的一方
  8. this(C# 参考)
  9. 搜索引擎的那些事(32位MD5算法)
  10. python语言入门-Python语言十分钟快速入门
  11. html推箱子过关检测函数,HTML5推箱子实现
  12. 微机综合保护装置怎么选择?在高压柜中起什么作用?
  13. 省市区联动附(2020年省市区数据)
  14. 在香港用什么软件可以唱歌?香港K歌app推荐
  15. mdpi Algorithms 期刊word 模板下载
  16. SAP License:ERP系统操作详解
  17. vant中的swipe
  18. Java编程笔记16:深入容器
  19. 南理工计算机科学与工程学院,周俊龙 - 南京理工大学 - 计算机科学与工程学院...
  20. [转]最速下降曲线:重力场中两点之间曲线更快

热门文章

  1. 【科研数据处理建模】SPSS实战操作生成36类常用论文研究案例,供学习参考
  2. (SQL版)天堂二私服架設
  3. 【手机】欧陆词典安装词典包
  4. 手机型号大全资料_建筑工程图纸代号大全,从此识图无压力!
  5. 实训二十三:交换机扩展 ACL 配置
  6. htc自带的位置服务器,htc手机自带的云服务器
  7. 【巨杉数据库SequoiaDB】企业级和开源领域“两开花”,巨杉引领国产数据库创新
  8. 管理系统中计算机应用实践报告,管理系统中的计算机应用实践报告.docx
  9. 基于FPGA的扩频系统设计(上)
  10. 信用卡知识:自动扣款日不等于最后还款日_刷卡技巧_财经_腾讯网