工作中遇到一个问题,音乐播放器可以播放U盘里面的歌曲,但是无法删除(删除不会报错,但只是从播放列表中删掉了,发现U盘里面的文件还在)。
怀疑是权限的问题。
查看U盘的挂载目录发现:
root@android:/ # ls -l /mnt/removable/
d---rwxr-x system
挂载的目录所属用户为system,所属组为media_rw。就是说system用户以及media_rw组内的用户可以对sda1目录进行读写操作,而其他用户没有写操作。
再看music.apk的manifest.xml文件。其中有这么一行:
再看系统中platform.xml中对android.permission.WRITE_EXTERNAL_STORAGE的定义:
- 58
- 59
- 61
那么现在有两种方法解决这个问题。
1.修改platform.xml中对android.permission.WRITE_EXTERNAL_STORAGE的定义:如下:
- 58
- 59
- 60
- 61
2.修改U盘的所属组为sdcard_rw。
这个修改是在vold中在对U盘进行挂载时修改的,具体就不在详细说明了,参考vold源码。