android 音樂播放器無法刪除U盤上音樂

工作中遇到一個問題,音樂播放器可以播放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文件。其中有這麼一行:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

再看系統中platform.xml中對android.permission.WRITE_EXTERNAL_STORAGE的定義:

 58     <permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
 59         <group gid="sdcard_rw" />
 61     </permission>
說明music.apk擁有sdcard_rw組的權限,而U盤在所在的組確實media_rw的。所以沒有權限作刪除操作。

那麼現在有兩種方法解決這個問題。

1.修改platform.xml中對android.permission.WRITE_EXTERNAL_STORAGE的定義:如下:

 58     <permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
 59         <group gid="sdcard_rw" />
 60         <group gid="media_rw" />
 61     </permission>
把music.apk也加入到media_rw組內,那麼就擁有對U盤的寫權限了。

2.修改U盤的所屬組爲sdcard_rw。

這個修改是在vold中在對U盤進行掛載時修改的,具體就不在詳細說明了,參考vold源碼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章