【发布时间】:2020-01-10 18:39:43
【问题描述】:
我有一个 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 摄像头,我缺少什么?我见过一些适用于 Android 的 3rd 方 UVC 库,但我不使用它们,而是想使用原生 Android 代码。
【问题讨论】:
-
@Daniel 我的理解是,在该页面上可以找到 Android 设备制造商所需的信息,例如三星。对于像这样的最终开发人员来说,页面上没有什么有用的。还是我错过了什么?
标签: java android android-camera2