Access Android sensors via NDK
Solution 1
I have taken a look at sensor.h, and the API looks very promising; however, a little howto on how to deal with the ASensorEventQueue and ASensorEventQueue_hasEvents and so forth would be -extremely- useful.
Ha! Update:
This looks a code example for what you want to do.
http://developer.android.com/reference/android/app/NativeActivity.html
Solution 2
Since Android SDK version 9 (for Android > 2.2) it seems to be possible to use the sensors via NDK.
See the STABLE_APIS.html file included in the docs. (Search for "sensor.h"). A mirror of that file is here.
Solution 3
Example from google https://github.com/googlesamples/android-ndk/tree/master/sensor-graph.Their code allow you controll SENSOR_REFRESH_RATE_HZ for the accelerometer.Written on c++ and connected to java code through the NDK.
Solution 4
I have recently worked on a pure C sensor application for android. Using NDK, you can access the sensors on the device without using Java. Check : https://github.com/PromiseMasango/sensor. Check : https://github.com/PromiseMasango/Android-NDK-sensor-example.
MQS
Updated on June 04, 2022Comments
-
MQS almost 2 years
I need read about 100 samples per second off the accelerometer on a Android, and at a fixed sample rate. The current sensormanager does or offers neither.
I've read Need to read android sensors really fast
He seems to have access to the driver code which made his life easier.
I am curious if anyone has been able to do something like this through the NDK w/o that type of knowledge.
Thanks in advance!
-
ransh over 7 yearsit works, but using accelerometer keeps a wakelock and prevents suspend mode. Does it make sense ?
-
ransh over 7 yearsit works, but using accelerometer keeps a wakelock and prevents suspend mode. Does it make sense ?
-
ThunderWiring about 3 yearsi noticed that you read only 50 events/samples, how can we change that to continuously read? i tried replacing it with infinite loop, but it blocks the main thread basically, and putting this loop in a code, i crashed my app on
ALooper_pollAll: No looper for this thread!
error.