2010-11-16 127 views
9

我需要每秒從Android上的加速計讀取大約100個樣本,並以固定採樣速率讀取。當前傳感器管理員不提供或不提供。通過NDK訪問Android傳感器

我讀過Need to read android sensors really fast

他似乎有機會獲得這讓他的生活更輕鬆的驅動程序代碼。

我很好奇,如果有人能夠通過NDK無類型的知識做這樣的事情。

在此先感謝!

回答

7

我看了一下sensor.h,看起來API非常有前途;然而,關於如何處理ASensorEventQueue和ASensorEventQueue_hasEvents等的一些小技巧將非常有用。

哈!更新:

這看起來是一個代碼示例,你想要做什麼。

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

+0

它的工作原理,但使用加速計保持wakelock和防止掛起模式。是否有意義 ? – ransh 2017-01-14 11:26:10

2

由於Android SDK版本9(爲Android> 2.2)這似乎是可能經由NDK使用傳感器。

請參閱文檔中包含的STABLE_APIS.html文件。 (搜索「sensor.h」)。該文件的鏡像是here

+0

它的工作原理,但使用加速計保持wakelock並防止掛起模式。是否有意義 ? – ransh 2017-01-14 11:36:46

0

傳感器可以直接讀取從系統讀取 「文件」 等:

/SYS /類/傳感器/ light_sensor /勒克斯 或 /SYS /類/傳感器/ light_sensor/raw_data

我不知道是否有更直接的方式來做到這一點,直接從芯片讀取。

就像在/ dev的東西/ ...從谷歌https://github.com/googlesamples/android-ndk/tree/master/sensor-graph。他們的代碼

0

實例讓你CONTROLL SENSOR_REFRESH_RATE_HZ的accelerometer.Written對C++,並通過NDK連接到Java代碼。