以编程方式在共享(磁盘模式)和安装(仅充电)之间切换 USB

Programmatically switch USB between shared (disk mode) and mounted (charge only)

我有一台旧的 HTC Desire S 通过 USB 数据线连接到我的 PC,我正在开发 PC 程序和 Android 应用程序。方便我让PC程序向Android设备的SD卡写入一些测试数据(需要共享模式),然后让Android app从SD卡读取这个测试数据(需要安装模式,否则它会得到一个带有 "permission denied").

的 FileNotFoundException

我可以通过下拉 Android 设备上的通知托盘菜单并使用 "USB connection type" 菜单项来手动在共享模式和挂载模式之间来回切换。

但这很不方便,所以我的问题是,是否可以进行一些 Android API 调用,以便我的 Android 应用程序可以将 USB 连接切换到挂载模式,阅读测试数据,然后切换回共享模式以便为我的 PC 程序的下一次迭代做好准备?

与其来回切换 USB 模式,不如考虑使用 adb pushadb pull 命令将开发测试数据传入和传出设备是否有效且更方便。

如果您非常喜欢 GUI 界面,在 DDMS 工具中有一个基于 adb push/pull 构建的文件浏览器,或许在 Android Studio 中也有与之等效的东西。