问题标签 [sensormanager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
957 浏览

android - 晴雨表应用程序 - 从这里到哪里?

我正在开发一个基本的气压计应用程序,但遇到了一个小问题。我想获取正在接收的数据并让它通过我为压力变量设置的文本视图运行。这是我的代码到这一点:

我知道它可能是我想念的一些愚蠢的东西,但我只是想让另一双眼睛看着它。- 另外,如果有任何帮助,我将 Android Studio 作为我的 IDE 运行。

0 投票
1 回答
3601 浏览

android - Android:如何处理不准确的气压计?

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

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

在检查气压计的精度时(使用 SensorEvent 的精度字段),它返回值为零,表示“传感器不可信”或“需要校准”(https://developer.android.com/参考/android/hardware/SensorManager.html#SENSOR_STATUS_UNRELIABLE)。

具体来说,我的问题是:

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

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

0 投票
0 回答
238 浏览

java - 索尼设备上的传感器数据不稳定

在过去的几天里,我一直在玩传感器和画布。

到目前为止,我已经设法根据设备的角度控制位图的位置。

应用程序的工作方式是获取方向数据,并根据设备倾斜的程度,在屏幕上向左或向右移动位图。

我在运行 android 4.2.2 (AOKP) 的三星 Galaxy S II GT-i9100 上进行了大部分测试,该应用程序运行得非常完美,除了应用程序在恢复时崩溃(我想我知道是什么原因造成的)。

我遇到的问题如下:

当我尝试在 Sony Xperia Z(运行 android 4.1.2,Sony 的股票)上运行相同的代码时,整个应用程序变得不稳定(位图几乎不移动),我认为这是因为传感器数据检索不稳定/缓慢。我朋友的索尼 Xperia S 也是如此。

我把这个应用程序给了我的另一个拥有 Nexus 4 的朋友,他说他没有这样的问题。

游戏视图

游戏循环线程

0 投票
0 回答
244 浏览

java - 指南针给我疯狂的数据?

我有一个与android中的指南针相关的项目。

它只显示手机相对于Z轴的角度如下(角度计算跟随度) 在此处输入图像描述

这是我的代码

MainActivity.java

图形.java

布局

显现

但它没有用。

它返回了疯狂的值。

而且我确信周围没有任何东西会影响磁场。+

帮帮我!谢谢

0 投票
5 回答
15435 浏览

android - Android SensorManager 奇怪如何重新映射CoordinateSystem

API 演示 -> 图形 ->指南针

它只能正常工作,直到您不更改设备自然方向。在大多数手机中是纵向的,而大多数 10 英寸平板电脑是横向的。如果您进行更改,则需要将其旋转 90 度。我希望看到该系统的 3D 修复。

100% 肯定需要使用remapCoordinateSystem()方法。

我想看看(代码)如果我能看到如何计算这些轴映射(理论数学)的解释,那就太好了。

我试图理解,但我忘记了所有线性代数。

在这里它说为什么我们必须使用,但没有说明如何使用!

似乎这些坐标在这个位置: - 设备在桌子上说(x 和 y 轴在桌子上)

设备方向

只有且仅当

问题是如何完成此代码:-那些案例分支

编辑:我写了一个小测试应用程序,它在屏幕上显示屏幕旋转:0、90、270 度(现在不能变成 180 度)

看来,如果 Rotation 0 不变(axisX = SensorManager.AXIS_X;axisY = SensorManager.AXIS_Y;),则 90 度应该是:

比谷歌文档说的值错误!问题在哪里?!

getRotationMatrix返回:

在此处输入图像描述

X 定义为向量积 YZ(它与设备当前位置的地面相切,大致指向东方)。

Y 在设备当前位置与地面相切,并指向磁北极。

Z指向天空并垂直于地面。

看上面的电话!我想从左到右,后置摄像头接地。

getOrientation返回:

在此处输入图像描述

X 定义为向量积 YZ(它与设备当前位置的地面相切,大致指向西)。

Y 在设备当前位置与地面相切,并指向磁北极。

Z指向地球的中心并且垂直于地面。

values[0]:方位角,绕 Z 轴旋转。

values[1]:俯仰,绕X轴旋转。

values[2]:滚动,绕 Y 轴旋转。

电话应该如何?

最后我想有像飞机这样的角度值。我的电话(我)前往北方:(偏航是方位角)

在此处输入图像描述

0 投票
3 回答
1268 浏览

android - SensorEvent onChanged 多线程?

我正在检测设备的方向以检查它是否倒置在表面上,然后在其上调用方法。我遇到的问题是,用户可能会无意中将设备的方向转向该位置一瞬间并返回一个面朝上的位置以纠正他们的错误,但是在他们第一次这样做时仍会调用该方法。

我正在尝试以 800 毫秒的延迟向方向添加“双重检查”,以便用户有时间在触发该方法之前更正方向。不幸的是,我无法控制onSensorChanged调用频率以添加延迟为 800 毫秒的线程,这将仔细检查方向以防止无意的方向更改。

我的代码如下,

我的问题:有没有一种方法可以调用onSensorChangedonSensorChanged 方法本身的延迟以进行双重检查?

0 投票
1 回答
628 浏览

android - ANDROID 在点击时提供传感器事件值(单值)

我尝试在单击按钮的事件中使用传感器管理器获取方向角度以及要在文本视图中添加的值,但传感器值在用户界面上每纳秒更新一次。你能帮助创建一个代码,让传感器事件值在特定的时间戳。

提前致谢

0 投票
1 回答
601 浏览

android - 什么是陀螺仪和加速度计以及它如何在 Android 中使用

大家..我是Android新手,我想了解加速度计和陀螺仪。两者如何在 android 应用程序中使用以及它是如何工作的。我尝试了一个简单的演示应用程序来检查移动设备上是否找到传感器。但它没有找到.. 请在陀螺仪和加速度计上指导我。

这是我的演示应用类

提前谢谢..

0 投票
2 回答
4022 浏览

java - 片段上的传感器管理器(如果可见则添加;如果不可见则删除)

我想在片段上有一个传感器管理器,它仅在片段处于活动状态时才处于活动状态。如果用户更改片段,则应删除侦听器。

添加和删​​除监听器非常简单。当片段出现/消失时,我不知道片段端的任何侦听器/函数。还有一个问题是,几乎所有函数都this.getActivity()返回一个空指针。

0 投票
1 回答
1117 浏览

android - 在 OpenGL ES2 模型旋转的旋转矩阵中切换设备轴

我正在尝试旋转位于(X,Y,Z)=(0,0,0)我的 OpenGL 世界的模型(地形)。+X是东,-Z是北,+Y是海拔。View 正在寻找,因为设备放置在指向北方的桌子上时,-Y设备的欧拉角是。(0°,0°,0°)

问题

我需要切换设备的轴以将测量的角度更改device -ydevice z.

目前围绕device x-axis作品旋转(导致围绕 旋转World X-axis)。

但是旋转device y会导致旋转World Y而不是World -Z旋转,旋转会导致device z旋转而World Z不是旋转World Y

到目前为止,我已经没有如何解决这个问题的想法了。有谁能给我一个提示吗?

到目前为止我已经尝试过:

  • 使用欧拉角SensorManager.getOrientation切换角度效果很好,尽管我进入了接近 90 度俯仰角的万向节锁定。所以我正在寻找另一种解决方案(SensorManager旋转矩阵或四元数)。
  • SensorManager.remapCoordinateSystem在几乎所有可能的星座中-> 无济于事
  • 从 -> 更改我的旋转矩阵的列/行SensorManager.getRotationMatrix无济于事