我们如何在启用Debug的Android 6.0设备上更轻松地切换MTP?

时间:2015-11-05 13:14:38

标签: android android-6.0-marshmallow

在Android 6.0中,MTP no longer works automatically

  

默认情况下,通过USB端口的设备连接现在设置为仅充电模式。要通过USB连接访问设备及其内容,用户必须明确授予此类交互的权限。如果您的应用支持用户通过USB端口与设备进行交互,请考虑必须明确启用交互。

MTP需要至少在每次插入USB线时重新授权,并且可能比这更频繁(超时?)。

启用USB调试后,我发现让MTP共享在设备上工作的唯一解决方案是:

  • 进入设置>开发者选项
  • 向下滚动到"选择USB配置"
  • 将该选项的值切换为任何 MTP,例如"仅限充电" (如果它现在在MTP上)
  • 将该选项的值切换为MTP
  • 刷新您的MTP客户端(例如,在Ubuntu 15.04上,关闭并重新打开显示设备内容的窗口)

当您尝试在外部存储设备上处理设备的文件时,会加重

是否有一种命令行方式可以让MTP继续进行,而不是编写UIAutomator"测试"自动化上述过程?或者,有没有其他方法可以让MTP在没有这种准备过程的情况下工作?

1 个答案:

答案 0 :(得分:14)

在Marshmallow(6.0和6.0.1)中,没有某种超能力是不可能的: - (

adb shell svc usb setFunction mtp

抛出java.lang.SecurityException: Neither user 2000 nor current process has android.permission.MANAGE_USB.MANAGE_USBsignature|privileged权限。我将其归档为issue#193062。它已被置于状态已分配并标记为缺陷-25596495 。它已在N开发人员预览中修复。