Android Pie(Android 9)コードでフレームにアクセスして取得したいUVCカメラがあります。
これは、Android電話に接続されているカメラを列挙するために使用しているコードです。
@Override
public void onResume()
{
CameraManager manager =
(CameraManager)getSystemService(CAMERA_SERVICE);
try {
for (String cameraId : manager.getCameraIdList()) {
CameraCharacteristics chars
= manager.getCameraCharacteristics(cameraId);
// Do something with the characteristics
int deviceLevel = chars.get(CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL);
Log.d(TAG, " **** device ["+cameraId+"] level:"+deviceLevel);
}
} catch(CameraAccessException e){
e.printStackTrace();
}
}
Android 9/Pie(Pixel 3)の場合、接続されているUSBカメラが表示されます。ただし、2つのデバイス(フロントカメラとバックカメラと電話)のみが表示されます。
これは私のマニフェストファイル(AndroidManifest.xml)の機能と権限のリストです。
<uses-permission Android:name="Android.permission.CAMERA" />
<uses-feature Android:name="Android.hardware.camera" />
<uses-feature Android:name="Android.hardware.camera.autofocus" />
<uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission Android:name="Android.permission.RECORD_AUDIO" />
<uses-feature Android:name="Android.hardware.usb.Host" />
これを実現する方法、つまりAndroid 9以降を使用してUSBカメラにアクセスする方法)をインターネット上で見つけることができません。
コードにUSBカメラを列挙するために何が不足していますか? Android用のサードパーティ製UVCライブラリをいくつか見ましたが、それらを使用せず、ネイティブのAndroidコードを使用します。
@alex papa、私はSamsung Galaxy S10eを購入し、logitech c920を試しましたが、外部カメラIDを取得しませんでした。使用しているウェブカメラを教えてください。また、packageManager.hasSystemFeature(PackageManager.FEATURE_CAMERA_EXTERNAL)がfalseを返しています。