这段代码有效
\n\ngetActivity().getContentResolver().\n delete(MediaStore.Audio.Media.EXTERNAL_CONTEN\xe2\x80\x8c\xe2\x80\x8bT_URI ,\n "TITLE =\'" + songdetails.get(index).song + "\'", null); \nRun Code Online (Sandbox Code Playgroud)\n\n但问题是,它将删除所有具有给定标题的文件。我尝试使用数据而不是标题,但它不起作用,弹出错误提示“没有名为 DATA 的列”。
\n\n任何人都可以就使用什么而不是标题提出任何建议吗?或者谁能告诉我删除某些东西的完全不同的方法。我也尝试过,有效,
\n\nFile file = new File(songdetails.get(index).Path);\n boolean deleted = file.delete();\nRun Code Online (Sandbox Code Playgroud)\n\n但问题是媒体存储没有更新
\n在删除功能后尝试此行
\n\nsendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ Environment.getExternalStorageDirectory())));\nRun Code Online (Sandbox Code Playgroud)\n\n(自 Android 4.4 以来,上述解决方案似乎不起作用)
\n\n对于数据:
\n\nMediaStore.MediaColumns.DATA\nRun Code Online (Sandbox Code Playgroud)\n\n你也可以尝试使用这个
\n\nsendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(fileDeleted)));\nRun Code Online (Sandbox Code Playgroud)\n\n请参阅此链接了解(某种)详细方法:
\n\nhttp://sandersdenardi.com/querying-and-removing-media-from-android-mediastore/
\n\n还要记住:
\n\n\n\n所有查询和删除(以及与此相关的插入和更新)\n 都会阻塞,直到基础事务完成为止。您应该在单独的线程上对 ContentResolver 异步执行这些操作。虽然 MediaStore 上的删除应该\xe2\x80\x99 不会花费大量时间,但如果在主线程上执行,则会阻塞 UI。
\n
做这样的事情..扫描你的文件..只需传递你想要删除的文件路径..
private void scanaddedFile(String path) {
try {
MediaScannerConnection.scanFile(context, new String[] { path },
null, new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri) {
context.getContentResolver()
.delete(uri, null, null);
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8590 次 |
| 最近记录: |