Android:如何处理不准确的气压表?

2023-12-19

我一直在使用三星 Galaxy S3 开发一个应用程序,该应用程序使用气压计来估计用户的海拔高度。我使用 SensorManager.getAltitude(p0, p),并将 p0 设置为等于最近机场报告的海平面压力。我将 p 设置为等于气压计返回的值。

不幸的是,返回的高度比实际高度系统高出 20 米左右。我确信气压计返回的压力值太低,因此 SensorManager.getAltitude 返回更高的高度。我什至开车到一个机场,在那里我得到了海平面压力,并将手机与跑道保持水平,以证明这一点。

当检查气压计的精度时(使用SensorEvent的精度字段),它返回零值,这意味着“传感器不可信”或“需要校准”(https://developer.android.com/reference/android/hardware/SensorManager.html#SENSOR_STATUS_UNRELIABLE https://developer.android.com/reference/android/hardware/SensorManager.html#SENSOR_STATUS_UNRELIABLE).

具体来说,我的问题是:

  1. 这是正常的吗?我没有其他带有气压计的设备,所以无法检查。手机如何确定其传感器“不可信任”?

  2. 有什么方法可以校准传感器吗?理想情况下,我可以检查用户气压计的准确性,然后对其进行校准(假设我知道气压值偏差了多少)。


我校准的方法是调整P0,使海拔高度与校准点的已知海拔高度相匹配。我使用各种方法来获取已知的高度,但最自动的是获取 GPS 位置,然后使用其中一种在线服务来查找高度。

通过这种方法,我不必太担心气压计的绝对精度。如果压力读数始终高出 0.5%,则实际上并不相关。只要我在静止时能够获得相对稳定的读数,我就很高兴。我应用了各种过滤,特别是在计算累积上升和下降数字时,我认为这是我为用户收集的最重要的统计数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android:如何处理不准确的气压表? 的相关文章

随机推荐

  • 创建任务时无用的 Amazon ECS 错误消息

    使用ECS代理容器 https github com aws amazon ecs agent在 Ubuntu 实例上 我可以向我的集群注册代理 我还在该集群和任务定义中创建了一项服务 当我尝试将任务添加到集群时 我收到无用的错误消息 Ru
  • 在哪里初始化我的应用程序的基类 Swift

    我有一个名为Home这是我的应用程序的父类 现在 我想在某个地方初始化这个类 以便我可以从任何我想要的地方访问类中的所有内容 该应用程序的起点是RootViewController 我应该在起点初始化应用程序吗 如果是 我应该如何做才能从应
  • PyCharm:找不到 Anaconda 安装

    在使用 PyCharm 之前 我在 Windows 10 上将 Anaconda 安装在 C ProgramData Anaconda3 中 现在 当我尝试使用 conda env 时 PyCharm 显示 未找到 Anaconda 安装
  • 如何访问或翻译矢量绘图中的文本

    我有一个习惯view它显示一个drawable并检测触摸 它有多个drawable图层 其中一些包含文本 例如 我已将每个 SVG 矢量图形转换为vector drawable并希望能够将文本设置为资源 以便我可以替换不同的翻译 上面 He
  • 创建自托管 Web API 还是使用 Asp.Net Core Web API?

    我有两个选择 如果我使用自行托管 Web ApiOWIN Katana我可以获得性能提升 但如上所述here https forums asp net t 1908235 aspx Self hosting or IIS hosted 我必
  • Rails 按创建日期对记录进行分组

    所以我有一个模型 我想检索记录并按created at字段的日期对它们进行分组 但created at是一个日期时间字段 我只对日期部分感兴趣 所以我正在寻找类似二维数组的东西 第一层是一个以日期字符串为键的哈希 第二层是带有记录的数组 我
  • 我如何子类化 threading.Event?

    在 Python 2 7 5 中 from threading import Event class State Event def init self name super Event self init self name name d
  • Asp.Net MVC 4 中的自定义 URL 路由

    我怎样才能像这个网址一样 http www domain com friend content title http www domain com friendly content title 在 Asp Net MVC 4 中 注意 该参
  • 如何设置GAE环境特定的环境变量?

    我在 Go 中有一个 GAE 应用程序 使用martini https github com go martini martini 我需要能够设置MARTINI ENV环境变量告诉 martini 它应该使用生产设置进行初始化 根据Pyth
  • 仅包含 ASCII 字符的 UNICODE 字符串是否始终等于 ASCII 字符串?

    我注意到以下几点 gt gt gt u abc abc True gt gt gt abc u abc True 这总是正确的还是可能取决于系统区域设置 在 python 3 中字符串似乎是 unicode 例如这个问题 https sta
  • 如何删除 openlayer 中的特定标记

    这是来自 capdragon 更新的新代码 但现在它不会创建标记 我现在不知道如何解决这个问题 我认为代码片段是解决我之前识别标记问题的一种非常聪明的方法 而且它可能是我现在缺少的一个非常小的东西 任何再次帮助将不胜感激
  • 如何创建守护线程?

    java程序员可以手动创建守护线程吗 如何 java lang Thread setDaemon 布尔值 http java sun com javase 6 docs api java lang Thread html setDaemon
  • Boost.Python 和 Boost.Function

    我想包一个boost function类成员 以便可以按以下方式使用它 using namespace boost using namespace boost python struct gui button t function
  • 强制 C++ 函数的用户承认数值常量参数的语义的最佳方法是什么?

    我想编写函数接口来强制用户承认内置常量的语义 例如 我想采取 void rotate float angle Rotate the world by an angle in radians 并将其更改为 void rotate Radian
  • 允许函数指针类型的模板参数接受任何返回类型的函数

    当函数的返回值未被实际使用时 是否有一种方法允许函数指针类型的模板参数接受任何 而不是特定 返回类型的函数 这是一个 MCVE 来说明我的意思 int returnInt int return 0 void returnVoid int t
  • 恢复 scipy.optimize 中的优化?

    scipy optimize 提供了许多不同的方法用于多元系统的局部和全局优化 然而 我需要一个很长的优化运行 可能会被中断 在某些情况下 我可能想故意中断它 有什么办法可以重新启动吗 嗯 有什么办法吗 我的意思是 显然可以提供最后一组最优
  • 对于某些已保存的联系人,CallLog.Calls.CACHED_NAME 始终返回 null

    我试图在我的应用程序中显示通话记录详细信息 但 CallLog Calls CACHED NAME 对于某些联系人始终返回 null 即使它是已保存的带有姓名的联系人 内置通话记录正确显示这些联系人的姓名 这是我的代码 protected
  • jQuery.get() - 实际用途?

    我试图理解你为什么会使用jQuery get and jQuery get index http docs jquery com Core get 文档说它将 jQuery 选择转换为原始 DOM 对象 而不是将选择作为 jQuery 对象
  • 删除元组的智能方法

    我有一个元组列表 如下所述 该元组按第二个值的降序排序 from string import ascii letters myTup zip ascii letters range 10 1 threshold 5 5 gt gt gt m
  • Android:如何处理不准确的气压表?

    我一直在使用三星 Galaxy S3 开发一个应用程序 该应用程序使用气压计来估计用户的海拔高度 我使用 SensorManager getAltitude p0 p 并将 p0 设置为等于最近机场报告的海平面压力 我将 p 设置为等于气压