Я использовал этот пример с ioctl на Android 4.4, 5.1 https://github.com/theicfire/simplewebcam/blob/master/jni/ImageProc.c
Я использую этот интерфейс для ручного управления такими параметрами, как контраст, усиление, экспозиция, уровень белого и т. Д., Когда я пыталсячтобы переместить приложение на android 7, файл fd не открывается.
fd = open (dev_name, O_RDWR | O_NONBLOCK, 0);
Есть ли способ исправить это?
Я проверил, и camera2.api не позволяет контролироватьпараметры, которые мне нужны от камеры, и собственный код не работает из-за этой ошибки.
edit: если быть более точным, я использую USB-камеру, подключенную к планшету, а Android 7 не позволяет встретитьсяполучить устройство FD, хотя я использую CHMOD 666 или 777, чтобы установить разрешение.есть ли способ обойти это или другой способ получить контроль над экспозицией, контрастом, усилением, белым lvl?
это код, который я добавил в части Java, код не выполняется в части canRead ()
private void InitCameraDevice() throws Exception {
//set permissions to all /dev/video devices before checking them
General.RunAsRoot("chmod 666 /dev/video*");
NativeUtils.setLogName(General.getLogFileName());
File dir = new File("/dev");
File[] videoDevFiles = dir.listFiles(new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.startsWith("video");
}
});
boolean cameraFound = false;
for (File deviceFile : videoDevFiles) {
// Process file
if(deviceFile.canRead()) {
cameraFound = (NativeUtils.prepareCamera(deviceFile.getAbsolutePath(), frameWidth, frameHeight) != -1);
if (cameraFound)
break;
}
else
General.logd(STREAM_THREAD_TAG, "Insufficient permissions on [" +
deviceFile.getAbsolutePath() +"].");
}
if(!cameraFound)
throw new Exception("UVC Camera not found!");
}
Спасибо за помощь