从本机代码中读取Android摄像头设备,无root

时间:2014-09-01 17:42:05

标签: android permissions camera v4l2

我正在开发一个Android应用程序,它使用来自/ dev / videoN的Video for Linux 2 API获取相机帧,其中N是从0开始的整数,例如/ dev / video1,/ dev / video2等.I我出于性能原因在C / C ++中这样做;我无法在Java中做足够快速的相机帧处理。我遇到的问题是,默认情况下/ dev / videoN设备只拥有所有者和组读取/写入的Unix文件权限,因此我需要做

chmod a + rxw / dev / video1

允许我的程序能够从/ dev / video1读取。这只适用于有根设备。

有没有办法允许本机代码在非root用户设备上访问/ dev / videoN?我试图为我的应用程序提供Android权限以访问相机硬件(在AndroidManifest.xml中)但在这种情况下没有任何效果,我仍然没有默认的Unix权限来读取/ dev / videoN。

(在运行Android 4.4的Nexus 7上,/ dev / videoN属于Unix组“相机”,但默认情况下,具有相机权限的应用程序似乎不会放在该组中)

1 个答案:

答案 0 :(得分:1)

我认为你需要一个JNI胶水来通过java代码访问相机。您可以使用本机代码进行帧处理。