使用 Android-Camera2 API 访问 USB 相机
我有一个UVC相机,想要从我的Android Pie(Android 9)代码中访问和抓取帧。
这是我用来枚举连接到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相机。但只有两个设备被列出,前置和后置摄像头与手机相连。
这是我的清单文件(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相机。
我缺少什么来让我的代码枚举USB相机?我看过一些适用于Android的第三方UVC库,但我不想使用它们,而是想使用原生Android代码。