通过 NDK 访问 Android 传感器

10

我需要在Android上以固定的采样率每秒读取大约100个加速度计读数,但是当前的sensormanager并没有提供这个功能。

我已经阅读了Need to read android sensors really fast

他似乎可以访问驱动程序代码,这使他的生活更轻松。

我想知道是否有人能够通过NDK来做到这样的事情,而不需要类似的知识。

提前感谢!

5个回答

8

它可以工作,但使用加速度计会保持唤醒锁并防止挂起模式。这有意义吗? - ransh

3

从Android SDK版本9开始(适用于Android > 2.2),似乎可以通过NDK使用传感器。

请参阅文档中包含的STABLE_APIS.html文件(搜索“sensor.h”)。该文件的镜像位于此处


它可以工作,但使用加速度计会保持唤醒锁并防止挂起模式。这有意义吗? - ransh

2

我注意到你只读取了50个事件/样本,我们如何改为持续读取?我尝试用无限循环替换它,但它会基本上阻塞主线程。将此循环放入代码中后,我的应用程序崩溃并出现“ALooper_pollAll:此线程没有Looper!”错误。 - ThunderWiring

2

1
传感器可以直接从系统“文件”中读取,例如:

/sys/class/sensors/light_sensor/lux 或 /sys/class/sensors/light_sensor/raw_data

我想知道是否有一种更直接的方法,可以直接从芯片中读取。
比如说在 /dev/... 中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接