android 音乐播放器无法删除U…
2013-12-19 20:55
417 查看
工作中遇到一个问题,音乐播放器可以播放U盘里面的歌曲,但是无法删除(删除不会报错,但只是从播放列表中删掉了,发现U盘里面的文件还在)。
怀疑是权限的问题。
查看U盘的挂载目录发现:
root@android:/ # ls -l /mnt/removable/
d---rwxr-x system media_rw
1970-01-01 08:00 sda1
挂载的目录所属用户为system,所属组为media_rw。就是说system用户以及media_rw组内的用户可以对sda1目录进行读写操作,而其他用户没有写操作。
再看music.apk的manifest.xml文件。其中有这么一行:
再看系统中platform.xml中对android.permission.WRITE_EXTERNAL_STORAGE的定义:
[plain] view
plaincopy
58
59
61
说明music.apk拥有sdcard_rw组的权限,而U盘在所在的组确实media_rw的。所以没有权限作删除操作。
那么现在有两种方法解决这个问题。
1.修改platform.xml中对android.permission.WRITE_EXTERNAL_STORAGE的定义:如下:
[plain] view
plaincopy
58
59
60
61
把music.apk也加入到media_rw组内,那么就拥有对U盘的写权限了。
2.修改U盘的所属组为sdcard_rw。
这个修改是在vold中在对U盘进行挂载时修改的,具体就不在详细说明了,参考vold源码。
怀疑是权限的问题。
查看U盘的挂载目录发现:
root@android:/ # ls -l /mnt/removable/
d---rwxr-x system media_rw
1970-01-01 08:00 sda1
挂载的目录所属用户为system,所属组为media_rw。就是说system用户以及media_rw组内的用户可以对sda1目录进行读写操作,而其他用户没有写操作。
再看music.apk的manifest.xml文件。其中有这么一行:
再看系统中platform.xml中对android.permission.WRITE_EXTERNAL_STORAGE的定义:
[plain] view
plaincopy
58
59
61
说明music.apk拥有sdcard_rw组的权限,而U盘在所在的组确实media_rw的。所以没有权限作删除操作。
那么现在有两种方法解决这个问题。
1.修改platform.xml中对android.permission.WRITE_EXTERNAL_STORAGE的定义:如下:
[plain] view
plaincopy
58
59
60
61
把music.apk也加入到media_rw组内,那么就拥有对U盘的写权限了。
2.修改U盘的所属组为sdcard_rw。
这个修改是在vold中在对U盘进行挂载时修改的,具体就不在详细说明了,参考vold源码。
相关文章推荐
- android 音乐播放器无法删除U…
- Android学习之 创建和删除桌面快捷…
- Java 遍历Map时 删除元素ZZ 分类: Android资源 2014-05-30 10:59 74人阅读 评论(0) 收藏
- 关于android 百度地图api 无法定位
- 转载【Android Studio无法启…
- android 音乐播放器无法删除U盘上音乐
- android service 无法启动
- Android JNI必须掌握的五点
- Android ListView 之&nb…
- STM32 重定义printf导致无法…
- unix/linux 删除特殊字符的文件
- Android--获取电池信息(Battery in…
- RedHat9.0 突然无法进入图形界面的…
- Android 程序无法运行ADB server didn't ACK问题
- android AndroidManifest.xml 多个…
- Android.mk 介绍
- Android UI设计中的特效 界面左右…
- 【ROM】[A500] Android …
- sql-"无法删除数据库,因为该数据库当前正在使用"问题解决
- Android ADB shell 命令大全