需要快速阅读android传感器吗

需要快速阅读android传感器吗,android,Android,问题:- 我正在开发一个应用程序 每5分钟需要一个新的加速度基准 毫秒 我的方法:- 我已经创建了一个远程服务 它只读取加速度 来自SensorManager的数据 我还将读取速率设置为 “延迟最快”,同时初始化 传感器管理器 然后我也用IPC来和我的朋友交流 获取这些信息的主要应用程序 阅读 问题:- 如果我在里面放一根圆木 onSensorChange()事件我收到一个 每20毫秒更新一次传感器数据。但我每5毫秒需要一次数据 问题? 有没有更好的阅读方法 传感器数据传输速度更快 有什么办法可

问题:-

  • 我正在开发一个应用程序 每5分钟需要一个新的加速度基准 毫秒
  • 我的方法:-

  • 我已经创建了一个远程服务 它只读取加速度 来自SensorManager的数据
  • 我还将读取速率设置为 “延迟最快”,同时初始化 传感器管理器
  • 然后我也用IPC来和我的朋友交流 获取这些信息的主要应用程序 阅读
  • 问题:-

  • 如果我在里面放一根圆木 onSensorChange()事件我收到一个 每20毫秒更新一次传感器数据。但我每5毫秒需要一次数据
  • 问题?

  • 有没有更好的阅读方法 传感器数据传输速度更快

  • 有什么办法可以让我投票表决吗 senor数据,而不是等待 触发事件的事件处理程序 事件


  • 请帮助我找到一个更好的解决方案,在5毫秒时间内读取数据或轮询加速度数据。

    关于Android SensorManager的速度,我更倾向于怀疑生成日志的Android文件I/O的速度。您可以在不写入日志的情况下尝试传感器读取代码的基准测试。类似于以毫秒为单位记录当前时间,然后执行1000000次传感器读取,然后再次记录当前时间。您可能仍然需要使用C版本来获取数据,但至少您会明确知道瓶颈所在。

    据我所知,加速度计噪音很大,不适合快速操作。有关更具权威性的解释以及您可以对此做些什么,请参阅谷歌科技关于传感器融合的演讲。简短说明:在高速事件中使用陀螺仪,并使用加速计校正漂移。

    我可以看出这有一些问题。首先,如果您试图强制轮询传感器数据的速度达到如此之快,那么很可能会使整个系统陷入困境。如果您所做的只是轮询传感器,这可能还可以,但是如果您想要任何类型的用户交互,我不确定这是否会起作用。还有,为什么需要这么快的数据?如果你在与人交流,你根本不会注意到100毫秒的延迟。

    你的问题解决了吗? 我有一个类似的项目,至少每10毫秒(约100赫兹)采集一次样本。但是,即使我将setEventRate设置为10毫秒,我得到的样本也没有任何变化


    因此,我认为有任何硬件限制,因为我已经阅读(我的传感器硬件)只提供62,5赫兹的方向子模式

    对于今天引用这篇文章的人来说,虽然我认为@robinr有一个很好的观点,这是非常正确的,但这不是一个答案,但是stackoverflow不会让我直接评论它

    关于第一个问题的答案,请参考。Android不保证数据速率,它只确保您获得最小值(如果您的请求太多,则为最大值)

    加速计没有噪音,至少今天没有。它只是太善于拾起一切。所以如果你想要一个好的加速度计算法,你需要使用一些滤波。如果你有很好的滤波器,加速计实际上比其他传感器都好,因为它通常是一个低功率传感器,具有最高的支持频率,并且在屏幕关闭时最有可能可用(与其他传感器相比)

    使用本机并提取最高频率的强制方法需要注意的是,您的设备支持将受到限制。这就是为什么Android不支持直接频率设置


    针对问题2;您必须通过监视时间戳来手动调节传感器事件。

    +1以正确使用单数“数据”。您想做什么?另外,您确定没有任何硬件限制吗?没有硬件限制,因为从硬件我可以每隔1毫秒读取一次加速度数据。您的驱动程序中实现了哪些IOCTL?它是否等待来自用户空间的IOCTL,并响应该IOCTL,然后轮询加速计硬件?感谢回复和链接。正如我之前发布的那样,我已经通过编写一个小的.c文件并直接从驱动程序读取解决了这个问题(我知道驱动程序级别的代码,因为它是由我们编写的)。然后从该.c文件创建一个.so文件,并使用jni将其用于我的android应用程序。这将使android应用程序依赖硬件,但这对我来说不是问题。再次感谢链接,它很有用。@Naveen Murthy,好奇号,你的硬件相关解决方案的速度是多少?@VitalyPolonetsky我每5毫秒轮询一次传感器数据,每次都得到新的值。这是关于在数据中查找模式的。更高的分辨率允许更好的模式匹配。我想做一个像自由落体探测这样的应用程序,它没有任何用户交互。这将是一个在后台运行的服务。这就是我想快速读取加速度数据的原因。正如Chritian所说,更高的分辨率意味着更好的模式匹配。