您的位置:首页 > 移动开发 > Android开发

Android媒体应用下不能将两个U盘间文件复制

2016-09-02 16:51 337 查看
一、现象

复制时提示只读文件。

二、原因

1.错误

[plain]
view plain
copy

print?





shell@coconut:/mnt/usb $ ls -l  
drwxrwxr-x media_rw media_rw          1970-01-01 08:00 1214-9D53  
drwxrwxr-x media_rw media_rw          1970-01-01 08:00 4256-0C90  



shell@coconut:/mnt/usb $ ls -l
drwxrwxr-x media_rw media_rw          1970-01-01 08:00 1214-9D53
drwxrwxr-x media_rw media_rw          1970-01-01 08:00 4256-0C90

2.正确

[plain]
view plain
copy

print?





130|shell@coconut:/mnt/usb $ ls -l  
drwxrwxr-x system   sdcard_rw          2015-03-26 19:51 1214-9D53  
drwxrwxr-x system   sdcard_rw          2015-03-26 19:50 4256-0C90  



130|shell@coconut:/mnt/usb $ ls -l
drwxrwxr-x system   sdcard_rw          2015-03-26 19:51 1214-9D53
drwxrwxr-x system   sdcard_rw          2015-03-26 19:50 4256-0C90
三、问题解决
在挂载参数上做改动

system/vold/Volume.cpp

[cpp]
view plain
copy

print?





int Volume::mountVol() {  
  if (isFatFs) {  
    if (Fat::doMount(devicePath, getMountpoint(), false, false, false,  
                /*AID_MEDIA_RW*/AID_SYSTEM, /*AID_MEDIA_RW*/AID_SDCARD_RW, /*permMask*/0002, true)) { //modify by tank  
      SLOGE("%s failed to mount via VFAT (%s)\n", devicePath, strerror(errno));  
      isFatFs = false;  
    } else {  
      isExtFs = false;  
      isExfatFs = false;  
    }  
  }  
}  



int Volume::mountVol() {
if (isFatFs) {
if (Fat::doMount(devicePath, getMountpoint(), false, false, false,
/*AID_MEDIA_RW*/AID_SYSTEM, /*AID_MEDIA_RW*/AID_SDCARD_RW, /*permMask*/0002, true)) { //modify by tank
SLOGE("%s failed to mount via VFAT (%s)\n", devicePath, strerror(errno));
isFatFs = false;
} else {
isExtFs = false;
isExfatFs = false;
}
}
}


过滤log方法:logcat -s Vold MountService DirectVolume
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐