与插入 Android Phone 的 USB 设备通信(例如,外部摄像头)

Communicating with the USB device plugged into Android Phone (for instance, an external camera)

我想知道 android studio 中是否有某种 API 可以通过 USB 在设备与 android phone 之间进行通信.比如外置摄像头。

我以前用过SetupAPI和WINUSB来完成这样的任务。因此,我们将不胜感激与这两个类似的内容。

创建该设备的公司不提供 SDK、驱动程序或任何额外信息。

非常感谢。

这取决于您想做什么,但简短的回答是肯定的。 要检测外部摄像头,您可以试试这个:

public String getExternalCamera(){

        CameraManager cameraManager = (CameraManager) getSystemService(CAMERA_SERVICE);

        String exCamId = null;

        for (String cameraId : cameraManager.getCameraIdList()) {
                    CameraCharacteristics characteristics = cameraManager.getCameraCharacteristics(cameraId);
                    Integer facing = characteristics.get(CameraCharacteristics.LENS_FACING);

                    //LENS_FACING_EXTERNAL will return Value: 2
                    if (facing != null && facing.equals(CameraCharacteristics.LENS_FACING_EXTERNAL)) {
                        exCamId = cameraId;
                    }
                }

                return exCamId;

        }

LENS_FACING_EXTERNAL

已添加到 API 级别 23

public static final int LENS_FACING_EXTERNAL 摄像头设备是外置摄像头,相对于设备屏幕没有固定的朝向。

您还可以使用:

INFO_SUPPORTED_HARDWARE_LEVEL_EXTERNAL

已添加到 API 级别 28

public static final int INFO_SUPPORTED_HARDWARE_LEVEL_EXTERNAL

此摄像头设备由连接到此 Android 设备的外部摄像头提供支持。

该设备具有与 LIMITED 级别设备相同的功能,但有一些例外。

有关详细信息,请参阅 Android 文档 here