【问题标题】:use the camera connected via USB instead of the built-in camera使用通过 USB 连接的相机而不是内置相机
【发布时间】:2026-02-07 23:20:02
【问题描述】:

我想在 android 中创建一个应用程序,当将 USB 摄像头设备连接到 android 设备时,所有应用程序都应将外部摄像头检测为主摄像头。例如,如果我们打开相机应用程序,那么设备会从通过 USB 连接的设备中获取照片。有没有办法做到这一点?

请不要把这个问题当作不是一个真正的问题来结束。

【问题讨论】:

    标签: android usb android-camera


    【解决方案1】:

    您无法通过编写简单的应用程序来做到这一点,因为您无法决定哪个是默认相机。这是由系统固件完成的,您无法通过 Android SDK 进行修改。

    实现这一点的唯一方法是在源代码级别自定义 Android,并添加代码以自动将默认摄像头切换到 USB 可用的摄像头。

    【讨论】:

    • 我有一台没有摄像头的电视设备。是否可以将 USB 摄像头或 IP 摄像头作为默认的 android 摄像头
    【解决方案2】:

    你可以使用OpenCV,根据this document很容易。

    从默认摄像头捕捉帧:

    CvCapture* capture = cvCaptureFromCAM( CV_CAP_ANDROID + 0 );
    

    从 USB 捕获帧:

    CvCapture* capture = cvCaptureFromCAM( CV_CAP_ANDROID + 1 );
    

    OpenCV 是开源的,您可以从here 获取源代码 ,你需要Android cmake project

    编辑:

    android是一个基于linux的操作系统,您可以下载Android terminal emulator并像在linux中一样自定义您的音频和视频设置,您可以在设备管理器中禁用内置摄像头或更改设置以使用外部默认为网络摄像头。但我个人会完全禁用内置摄像头。

    【讨论】:

    • OP不想自己使用USB摄像头。他想让它成为设备上每个应用程序的默认设置。
    • @Ahmed Kato 如果我想使用 Android 终端模拟器应用程序,我的设备是否需要 root 权限?