返回

安卓 USB 主机权限确认对话框怎么绕过?试试这些步骤

Android

绕过安卓 USB 主机权限确认对话框

问题

在某些工业应用中,我们需要应用程序在开机时自动连接到 USB 串口并执行操作。然而,安卓系统会在连接时弹出确认对话框,需要手动点击“确定”,导致无法实现自动化连接。

解决方案

步骤 1:启用开发人员选项

  • 进入“设置”>“关于手机”,连续点击“内部版本号” 7 次,直到看到“你已成为开发人员”的消息。

步骤 2:启用 USB 调试

  • 返回“设置”>“开发人员选项”,启用“USB 调试”。

步骤 3:使用 ADB 命令

  • 连接设备到电脑,打开终端或命令提示符,输入:adb shell settings put global persistent_usb_configuration none

步骤 4:取消勾选“仅限充电”模式

  • 将 USB 连接模式从“仅限充电”更改为“文件传输”。

步骤 5:重新连接 USB 设备

  • 重新连接设备,此时不再出现确认对话框。

代码示例

// 应用程序在 onCreate() 方法中
try {
    // 启用 USB 调试
    Process process = Runtime.getRuntime().exec("su");
    OutputStream outputStream = process.getOutputStream();
    outputStream.write("settings put global persistent_usb_configuration none\n".getBytes());
    outputStream.flush();
    outputStream.close();
    process.waitFor();
} catch (Exception e) {
    e.printStackTrace();
}

// 继续连接 USB 设备的步骤

注意

  • 此方法需要 root 权限。
  • ADB 命令需要电脑与设备连接。
  • 重新连接 USB 设备后,可能需要重新启动应用程序。

常见问题解答

1. 为什么需要启用开发人员选项?

开发人员选项允许我们访问设备的更高级功能,包括 USB 调试。

2. USB 调试有什么作用?

USB 调试允许我们通过 ADB(安卓调试桥)与设备通信,从而执行各种操作,如修改设置。

3. ADB 命令的作用是什么?

adb shell settings put global persistent_usb_configuration none 命令会修改设备的 USB 配置,使其不再显示确认对话框。

4. 为什么需要更改 USB 连接模式?

在“仅限充电”模式下,设备不会与 USB 主机通信。因此,我们需要更改为“文件传输”模式。

5. 如果此方法无效怎么办?

如果上述方法无效,可能是由于其他设置或应用程序导致的。尝试检查 USB 连接、设备权限和安装的应用程序。