本文轉載自:https://blog.csdn.net/tangzhihai0421/article/details/53487208
Android L后默認的usb連接模式為“僅充電”,而且不會隨用戶每次的選擇而記住,假如需要修改默認的usb連接模式並且需要記住用戶的選擇,需要修改以下一些代碼:
1.需要把mk文件中的
persist.sys.usb.config=mtp
這樣默認的連接模式就為MTP,但是修改此處后usb電腦手機重啟后會在PC端顯示兩個手機儲存】、
2.此時需要修改
packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java
增加以上代碼,就不會在PC端顯示兩個手機儲存
3.修改以上兩處后,每當用戶開機第一次是mtp模式,但是連接一次后,第二次及以后連接都會是“僅充電”模式,此時還要修改
frameworks/base/services/usb/java/com/android/server/usb/UsbDeviceManager.java
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case MSG_UPDATE_STATE:
mConnected = (msg.arg1 == 1);
mConfigured = (msg.arg2 == 1);
if (!mConnected) {
// When a disconnect occurs, relock access to sensitive user data
mUsbDataUnlocked = false;
}
if (mConnected && (isUsbShouldActived())) {
//setEnabledFunctions(null, false);
} else if(mConnected && isLock) {
setEnabledFunctions(mCurrentFunctions, false);
updateAdbNotification();
} else {
updateUsbNotification();
updateAdbNotification();
}
if (UsbManager.containsFunction(mCurrentFunctions,
UsbManager.USB_FUNCTION_ACCESSORY)) {
updateCurrentAccessory();
} else if ((!mConnected && !mCurrentFunctions.equals(UsbManager.USB_FUNCTION_NONE)) || mPowerDisconnected) {
// restore defaults when USB is disconnected
//setEnabledFunctions(null, false);
}
注釋掉紅色部分的代碼就可以了