出错如下图:
该是源生错误,storage list有多个同name storage可以做如下修改,packages\providers\MediaProvider\src\com\android\providers\media\MtpService.java
private final StorageEventListener mStorageEventListener = new StorageEventListener() {
@Override
public void onStorageStateChanged(String path, String oldState, String newState) {
synchronized (mBinder) {
Log.d(TAG, "onStorageStateChanged " + path + " " + oldState + " -> " + newState);
if (Environment.MEDIA_MOUNTED.equals(newState)) {
//check the same storage in storagelist
int isExist = 0;
for(MtpStorage storage : mStorageMap.values()){
if(path.equals(storage.getPath())){
isExist = 1;
}
}
if(isExist == 0){
volumeMountedLocked(path);
}
} else if (Environment.MEDIA_MOUNTED.equals(oldState)) {
StorageVolume volume = mVolumeMap.remove(path);
if (volume != null) {
removeStorageLocked(volume);
}
}
}
}
};