没有安装mtp驱动怎么办,如何将手机充电模式改为MTP

如何更改Android6.0 usb的默认MTP模式

在6.0之前的系统中,您只需要更改默认的persist.sys.usb.config值。

但是,6.0,无论可以修改多少persist.sys.usb.config的默认值,usb的默认值都是充电专用模式。 即使修改了设定,拔下后连接的也是充电专用模式。

所有问题的原因都是因为可以在源代码中找到线索。

源代码

packages/apps/settings/src/com/Android/settings /设备信息/USB back end.Java

publicusbbackend (上下文) intent intent=context.register receiver ) null,newintentfilter ) USB manager.action miniver …………………} publicintgetusbdatamode () if (! mis unlocked (返回模式_ data _ none; } else if (musbmanager.isfunctionenabled ) USBmanager.USB_function_MTP ) { return MODE_DATA_MTP; } else if (musbmanager.isfunctionenabled ) USBmanager.USB_function_PTP ) { return MODE_DATA_PTP; } else if (musbmanager.isfunctionenabled ) USBmanager.USB_function_midi ) { return MODE_DATA_MIDI; //m : addforbuilt-INCD-romandusbmassstorage @ { } else if (musbmanager.isfunctionenabled ) USB manager.USB _ fu fu functord else if (musbmanager.isfunctionenabled ) USBmanager.USB_function_bicr ) { return MODE_DATA_BICR; ///m : @ } } return mode _ data _ none; //. }从上面的代码中可以看到Android 6.0中添加了重要的内容。 ——mis未锁定

原因是只要mIsUnlocked为false,任何模式都无法正常工作。 那么,mIsUnlocked的值由谁控制呢? 继续分析代码。

我们很容易就发现了原因。

frameworks/base/services/USB/Java/com/Android/server/USB/USB设备管理器. Java

publicvoidhandlemessage (消息msg ) switch ) msg.what ) case msg _ update _ state 3360 mconnected=) msg.arg1==mconffed mUsbConfigured=mConfigured; if (! mconnected (//whenadisconnectoccurs,relockaccesstosensitiveuserdatamusbdataunlocked=false; } else { mUsbDataUnlocked=true; //subingxi add这是我加的} updateUsbNotification (); updateAdbNotification (; if (USB manager.contains function (mcurrent functions,USB manager.USB _ function _ accessory ) )更新mconnected (//restoredefaultswhenusbisdisconnectedsetenabledfunctions (空,假) ); (if ) mbootcompleted ) { updateUsbStateBroadcast; updateUsbFunctions (; (/C2K-bypass-startif ) bevdodtviasupport==true ) if (! monnected (//setbypassmodeto0mbypass.updatebypassmode ) ) 0; } } //C2K-BYPASS-END break; 在这里很容易就知道理由。 只要usb断开mUsbDataUnlocked的连接,就会变为false。 而且,只有在您手动将usb模式修改为通知栏后,此mUsbDataUnlocked才会为true。 我的修改很简单。 连接usb时,将mUsbDataUnlocked设为true

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注