Is there a standarized API for taking pictures using Android NDK?
Or is it really necessary to go through Java for that?
In Android 7 (API 24) Google has added support for native camera access (Camera2 API).
In ndk-r12:
Headers:
$NDK_ROOT/android-24/$ARCH/usr/include/camera/Ndk*.h$NDK_ROOT/android-24/$ARCH/usr/include/media/Image*.hLibs:
libcamera2ndk.solibmediandk.soYes. It is necessary to go through Java. Since NDK access will be specific to particular hardware.
Inspite there are few realizations through NDK.
Check the following links for relevant details.
http://nhenze.net/?p=253
http://osdir.com/ml/android-ndk/2010-10/msg00518.html
1) There was an access to Camera.h in older releases like Froyo, 2.3.3.
Now, I see a Camera.h in KitKat, 4.4.4. It changed completely.
This is an unofficial API, so it's subject to change. Be ready to code and deploy different versions for different Android releases.
2) There is a Camera component in OpenMAX. People managed to create an OpenMAX recorder for Raspbery Pi. I yet have to find a working solution for Android.
These two questions are unanswered:
and I'm going to try OpenMAX.
3) We ran into an Android device where video4linux2 works (one can access /dev/video0).
Post Android 7 or API version 24 : Camera 2 APIs are possible not just in Java space but in the native(NDK/C++) space too. This article give you all the details with code.