如何在启用了debugging的Android 6.0设备上更轻松地切换MTP?

在Android 6.0中, MTP不再自动工作 :

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

至less在每次插入USB电缆时都需要重新授权MTP,可能会比此更频繁(超时?)。

在启用USBdebugging的情况下,我发现让MTP共享在设备上工作的唯一解决scheme是:

  • 进入设置>开发人员选项
  • 向下滚动到“selectUSBconfiguration”
  • 将该选项的值切换为MTP以外的任何值,例如“仅充电”(如果现在位于MTP上)
  • 将该选项的值切换到MTP
  • 刷新你的MTP客户端(例如,在Ubuntu 15.04上,closures并重新打开显示设备内容的窗口)

当您尝试使用外部存储设备上的文件时,这会变得越来越严重

有没有一种命令行的方式来获得MTP,而不是写一个UIAutomator的“testing”来自动完成上述过程? 或者,还有其他方式让MTP在没有这种准备过程的情况下工作吗?

Solutions Collecting From Web of "如何在启用了debugging的Android 6.0设备上更轻松地切换MTP?"

在棉花糖(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权限。 我提出这个问题#193062 。 它已被置于状态Assigned并标记为Defect-25596495 。 它在N开发人员预览中被修复。