当前位置: 首页 > 知识库问答 >
问题:

索尼智能手表中的软件传感器 3

方砚
2023-03-14

我们正在为我们的可穿戴应用程序使用TYPE_LINEAR_ACCELERATIONTYPE_GRAVITY传感器事件值,但对于索尼智能手表3,由于缺少这两个传感器,我们的应用程序无法提供兼容性

官方文档说

Android开源项目(AOSP)提供了三个基于软件的运动传感器:重力传感器、线性加速度传感器和旋转矢量传感器。这些传感器在Android 4.0中进行了更新,现在使用设备的陀螺仪(以及其他传感器)来提高稳定性和性能。如果想尝试这些传感器,可以使用getVendor()方法和getVersion()方法进行识别(厂商为Google Inc版本号是3)。通过供应商和版本号识别这些传感器是必要的,因为Android系统认为这三个传感器是二级传感器。例如,如果设备制造商提供他们自己的重力传感器,那么AOSP重力传感器显示为辅助重力传感器。所有这三种传感器都依赖于陀螺仪:如果设备没有陀螺仪,这些传感器就不会显示出来,也不可用。

所以我的问题是,如果OEM没有为这三种软基传感器提供主要支持,那么有没有办法使用AOSP传感器。我不知道如何像文档中提到的那样使用它们,它只是说使用getVendor()getversion(),它只检查谁是供应商,版本是什么。另一种方法是使用过滤器从陀螺仪值中获取这些重力和线性加速度值,但我不知道具体如何做到这一点,以及使用它的注意事项是什么。

PS。LG G WATCH和Moto 360确实提供了这些传感器,我也从getVendor方法检查了供应商,索尼的EM Micro和G WATCH的Invensense。也没有谷歌公司在G watch

共有1个答案

钦耀
2023-03-14

请参考此问题Sony SmartWatch 3(SWR50)不再返回Sensor.TYPE_LINEAR_ACCELERATION

出于某种原因,“线性加速度”和“重力”传感器在索尼智能手表3上无法正常工作。您可以使用加速计传感器获得加速度,应用低通滤波器获得重力值,减去重力值获得“线性加速度”。请参考下面的代码示例。

public void onSensorChanged(SensorEvent event){
  // In this example, alpha is calculated as t / (t + dT),
  // where t is the low-pass filter's time-constant and
  // dT is the event delivery rate.

  final float alpha = 0.8;

  // Isolate the force of gravity with the low-pass filter.
  gravity[0] = alpha * gravity[0] + (1 - alpha) * event.values[0];
  gravity[1] = alpha * gravity[1] + (1 - alpha) * event.values[1];
  gravity[2] = alpha * gravity[2] + (1 - alpha) * event.values[2];

  // Remove the gravity contribution with the high-pass filter.
  linear_acceleration[0] = event.values[0] - gravity[0];
  linear_acceleration[1] = event.values[1] - gravity[1];
  linear_acceleration[2] = event.values[2] - gravity[2];
}
 类似资料:
  • 我有一个在Android驱动的设备中使用的传感器列表。请帮我按“基于硬件的传感器”和“基于软件的传感器”对这个列表进行排序。 GPS传感器 环境温度传感器 未校准旋转矢量传感器 地磁旋转矢量传感器 重力传感器 陀螺仪传感器 未校准陀螺仪传感器 光传感器 线性加速度传感器 磁场传感器 未校准磁场传感器 压力传感器 接近传感器 相对湿度传感器 旋转矢量传感器 有效运动触发传感器 步进计数器传感器 步进

  • 将心率传感器与手表配对 在佩戴与手表配对的 Polar 心率传感器时,手表不会通过手腕测量心率。 佩戴经湿润的心率传感器。 在手表上,前往 General Settings > Pair and sync > Pair sensor or other device (一般设置 > 配对和同步 > 配对传感器或其他设备),然后按 OK (确定)。 请将手表靠近心率传感器,并等待其被发现。 发现心率传

  • 将心率传感器与手表配对 在佩戴与手表配对的 Polar 心率传感器时,手表不会通过手腕测量心率。 佩戴经湿润的心率传感器。 在手表上,前往 General Settings > Pair and sync > Pair sensor or other device (一般设置 > 配对和同步 > 配对传感器或其他设备),然后按 OK (确定)。 请将手表靠近心率传感器,并等待其被发现。 发现心率传

  • 下面是一份已经对接到 RT-Therad Sensor 框架上的传感器的列表,点击传感器名称即可跳转到相应软件包主页。(本文档不定时更新,如要查看所有支持的传感器的列表,可以查看最新的软件包索引。 厂商 传感器 备注 BOSCH bma400 加速度计、计步计 bmi160 加速计、陀螺仪 bmx160 加速计、陀螺仪、磁力计 bme280 气压计、湿度计、温度计 Goertek spl0601

  • 我现在尝试在Matlab中从记录加速度计、陀螺仪和磁强计输出的android应用程序中提取信息。由于我需要找到线性加速度,我假设我可以计算它从加速度计考虑重力。我想,应该可以通过基于磁强计输出(地球磁场)检查电话方位来找到。但我不能用任何公式得到正确的结果。我说有了磁强计才有可能找到重力矢量是对的吗?如果是,我应该如何解释传感器读数?

  • 我使用Maven的Spring boot项目。当我使用Intellij社区构建它时,我得到了一个错误 无法将工件com.jolira:hickory:pom:1.0.0从/传输到central(https://repo.maven.apache.org/maven2):https://repo.maven.apache.org/maven2/com/jolira/hickory/1.0.0/hic