1.packages/apps/Settings / src/com/android/settings/deviceinfo/UsbBackend.javajava
getUsbDataMode() 中 // select none if no found
return -1; // ... 《修改成 return 0; 或者 android
// select none if no found
if (isTestSwitchOn()){
return 0;
}else{
return MODE_DATA_MTP;
} 》app
2.frameworks/base / services/usb/java/com/android/server/usb/UsbDeviceManager.java測試
case MSG_UPDATE_STATE:server
if (!mConnected) {
// When a disconnect occurs, relock access to sensitive user data
mUsbDataUnlocked = false;
}else if(mConnected){
if(UsbManager.containsFunction(getDefaultFunctions(),UsbManager.USB_FUNCTION_MTP)){
mUsbDataUnlocked = true;
}
}get
//判斷是否爲測試模式:it
private boolean isTestSwitchOn(){
try {
final String configPath="//sys//class//android_usb//android0//usb_mode";
FileInputStream inStream=new FileInputStream(configPath);
byte[] buffer= new byte[1];
int nu=inStream.read(buffer);
inStream.close();
if (nu > 0){
if("1".equals(new String(buffer))){
return true;
}else {
return false;
}
}else {
return true;
}
} catch (FileNotFoundException e) {
e.printStackTrace();
// default test mode without usb_mode file.
return true;
} catch (IOException e) {
e.printStackTrace();
}
return false;
}io