问题描述
我有一个适用于 Android 的音乐播放器应用。 MediaStore 有一个奇怪的问题。我可以在 MediaStore 上删除或添加歌曲到我自己的播放列表(例如,由我的应用程序创建)。但是,当我尝试将歌曲添加到由其他应用程序创建的播放列表时,它会抛出 java.lang.SecurityException
,但我可以从完全相同的播放列表中删除歌曲!
我拥有所有必需的权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
还有我的代码:
public Uri addTrackToPlaylist(Context context,TrackLocal trackLocal,long playlist_id,int pos) {
ContentResolver resolver = context.getContentResolver();
Uri newuri = MediaStore.Audio.Playlists.Members.getContentUri(getVolume(),playlist_id);
ContentValues values = new ContentValues();
values.put(MediaStore.Audio.Playlists.Members.PLAY_ORDER,0);
values.put(MediaStore.Audio.Playlists.Members.AUdio_ID,trackLocal.dbid);
Uri uri = resolver.insert(newuri,values);
return uri;
}
public int deletePlaylistTrack(Context context,long playlistId,TrackLocal trackLocal) {
ContentResolver resolver = context.getContentResolver();
Uri uri = MediaStore.Audio.Playlists.Members.getContentUri(getVolume(),playlistId);
String filter = MediaStore.Audio.Playlists.Members.AUdio_ID + " = " + trackLocal.dbid;
return resolver.delete(uri,filter,null);
}
private String getVolume() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
return MediaStore.VOLUME_EXTERNAL;
} else {
return "external";
}
}
有没有人至少知道如何解决这个问题?
谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)