AndroidのndkからUSBウェブカメラにアクセスしようとしています。ndkとV4L経由でAndroidのUSB Webカメラをプレビュー
AndroidシステムにはV4Lカーネルモジュールが搭載されているので、V4Lライブラリを使用することをお勧めします。彼らはndkにバンドルされているので、私のプロジェクトにそれらを含めるのは大したことではありませんでした。
は私の問題は以下の通りです:
私はは/ dev/VIDEO 4を開き、そのファイルディスクリプタへのioctlを送信する必要がありますが、私はアクセスは/ dev/VIDEO 4への権利を持っていません。私は3つのことを考えました:
1)なぜ私は/ dev/video4にアクセス許可がありませんか?私のアプリはandroid.permission.CAMERA権限を使用しているので、アプリを実行するユーザーはカメラグループに属し、カメラグループは/ dev/video4に対してr + w権限を持ちます。なぜそれを開くことができませんか?
2)UsbManagerクラスで可能なファイル記述子をJava側から取得しようとしましたが、ファイル記述子のポイントは/ dev/bus/usb/001/004です。 Java側から/ dev/video4のアクセス権を要求する方法はありますか?あるいは、ユーザー空間のV4Lライブラリをインクルードして、汎用のUSBデバイスへのポインタを/ dev/bus/usb/001/004に渡すことはできますか?
3)OpenCVのアンドロイド版にはV4Lが付属していますか?/dev/video4にアクセスすることなくカメラをプレビューするのに使用できますか?
これまで誰かがこのようなことを試みましたか?
また、libusbとlibuvcを使用してカメラに接続するライブラリ(https://github.com/saki4510t/UVCCameraなど)がありますが、このライブラリは非常に不自然であり、満足のいく結果を提供していません。
hi。 afacのアンドロイドのアクセス許可は特定のlinux-groupにアプリケーションのユーザーを追加し、このグループのアクセス権を継承しますが、正しいグループを追加するカスタムカーネルでさえ/ devを開く権限を与えないというレポートを読んでいます/ videoX。 uvcvideoドライバはSamsung Galaxy S5に搭載されているようですが、/ dev/videoXへのアクセスがroot権限で実現されていればかなりうまくいきます(https://code.google.com/p/android/issues/detail ?id = 159529)。これは今私がやっていることです。 – BT9