Доступ к датчикам Android через NDK - PullRequest
9 голосов
/ 17 ноября 2010

Мне нужно прочитать около 100 выборок в секунду с акселерометра на Android и с фиксированной частотой дискретизации.Текущий сенсорный менеджер не делает или не предлагает ни одного.

Я прочитал Нужно очень быстро прочитать датчики Android

Кажется, у него есть доступ к коду драйвера, который сделал его жизньпроще.

Мне любопытно, если бы кто-нибудь смог сделать что-то подобное через НДК без такого рода знаний.

Заранее спасибо!

Ответы [ 5 ]

7 голосов
/ 04 марта 2011

Я взглянул на sensor.h, и API выглядит очень многообещающе; однако, несколько советов о том, как обращаться с ASensorEventQueue, ASensorEventQueue_hasEvents и т. д., будут чрезвычайно полезны

Ха! Обновление:

Это пример кода для того, что вы хотите сделать.

http://developer.android.com/reference/android/app/NativeActivity.html

2 голосов
/ 28 января 2011

Начиная с версии Android SDK 9 (для Android> 2.2) возможно использование датчиков через NDK.

См. Файл STABLE_APIS.html, включенный в документы. (Ищите «sensor.h»). Зеркало этого файла здесь .

1 голос
/ 22 октября 2017

Пример из Google https://github.com/googlesamples/android-ndk/tree/master/sensor-graph.Their кода позволяет вам контролировать SENSOR_REFRESH_RATE_HZ для акселерометра. Написано на c ++ и подключено к java-коду через NDK.

1 голос
/ 17 ноября 2010

Дайан Хэкборн говорит, что это невозможно.

http://groups.google.com/group/android-ndk/browse_thread/thread/f299413e610c7e93?hl=en

0 голосов
/ 27 октября 2016

Датчики могут быть прочитаны считыванием непосредственно из системных «файлов», таких как:

/ SYS / класс / датчики / light_sensor / люкс или же / SYS / класс / датчики / light_sensor / raw_data

Интересно, есть ли более прямой способ сделать это, читая непосредственно с чипа?

Как что-то в /dev/...

...