2014-09-01 2 views
2

Я работаю над приложением для Android, которое приобретает кадры камеры с использованием API для Linux 2 API/dev/videoN, где N - целое число, начиная с 0, например,/dev/video1,/dev/video2 и т. д. Я делаю это в C/C++ по соображениям производительности; Я не могу выполнить достаточно быструю обработку кадров камеры на Java. Проблема я бегу в том, что по умолчанию в/Dev/videoN устройства имеют права доступа к файлу Unix владельца и группы чтения/записи только, и, таким образом, мне нужно сделатьЧтение устройства для камеры Android из собственного кода без корня

CHMOD A + rxw/DEV/video1

, чтобы моя программа могла читать/dev/video1. Это возможно только на корневом устройстве.

Есть ли способ разрешить родному коду получить доступ/dev/videoN на устройствах без привязки к Android? Я попытался предоставить моему приложению разрешения Android для доступа к аппаратным средствам камеры (в AndroidManifest.xml), но это не имеет никакого эффекта в этом сценарии, и я по-прежнему не имею разрешения Unix по умолчанию для чтения из/dev/videoN.

(На Nexus 7 под управлением Android 4.4, то/DEV/videoN принадлежит к группе Unix «камеры», но приложения с разрешениями камеры, кажется, не быть размещены в этой группе по умолчанию)

+0

Вы смогли решить эту проблему? Доступ к устройству из собственного кода? – Arjun

ответ

1

Я думаю, вам нужен клей JNI для доступа к камере через Java-код. Вы можете выполнить обработку кадра в собственном коде.

+0

Я пытаюсь избежать накладных расходов JNI, так как частота кадров камеры чувствительна к таким накладным расходам – atai

Смежные вопросы