从 SD 卡中删除音频
Delete Audio From Sdcard
我正在尝试删除 SD 卡中的音频文件,但没有成功
public boolean delete(String path)
{
return new File(path).delete();
}
在浏览帖子时,我遇到了 Storage Access Framework
但无法理解。从 SD 卡中删除文件是否需要?
而且我只能使用Content Resolver来删除这样的文件吗?
getContenResolver().delete(uri,null,null);
或者有没有其他方法可以删除Audio?
我的应用程序在 Write permission
和 Read permission
上得到了很好的提升,我正在 Marshmallow 6.0
上进行测试
请回答。
提前致谢。
您需要确保两件事:
1) 由于您的目标是 Android.M,因此您还需要获得运行时权限。仅仅在清单中要求它们是不够的。
2) 如果您想read/write SD 卡上的数据您需要使用DocumentFile 而不是File。逻辑大致相同,但您可以参考此处了解更多信息:https://developer.android.com/reference/android/support/v4/provider/DocumentFile.html
在您的 OnCreate 或您希望的任何地方使用此命令打开一个对话框,让您 select 一个 SD 目录。 Select 你的图片所在的那个。
startActivityForResult(new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE), 42);
那么你将需要这个方法:
@Override
public void onActivityResult(int requestCode,int resultCode,Intent resultData) {
if (resultCode != RESULT_OK)
return;
Uri treeUri = resultData.getData();
DocumentFile pickedDir = DocumentFile.fromTreeUri(this, treeUri);
grantUriPermission(getPackageName(), treeUri, Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
getContentResolver().takePersistableUriPermission(treeUri, Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
DocumentFile YourAudioFile= pickedDir.findFile("YourAudioFileNameGoesHere");
// And here you can delete YourAudioFile or do whatever you want with it
}
我正在尝试删除 SD 卡中的音频文件,但没有成功
public boolean delete(String path)
{
return new File(path).delete();
}
在浏览帖子时,我遇到了 Storage Access Framework
但无法理解。从 SD 卡中删除文件是否需要?
而且我只能使用Content Resolver来删除这样的文件吗?
getContenResolver().delete(uri,null,null);
或者有没有其他方法可以删除Audio?
我的应用程序在 Write permission
和 Read permission
上得到了很好的提升,我正在 Marshmallow 6.0
请回答。
提前致谢。
您需要确保两件事:
1) 由于您的目标是 Android.M,因此您还需要获得运行时权限。仅仅在清单中要求它们是不够的。
2) 如果您想read/write SD 卡上的数据您需要使用DocumentFile 而不是File。逻辑大致相同,但您可以参考此处了解更多信息:https://developer.android.com/reference/android/support/v4/provider/DocumentFile.html
在您的 OnCreate 或您希望的任何地方使用此命令打开一个对话框,让您 select 一个 SD 目录。 Select 你的图片所在的那个。
startActivityForResult(new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE), 42);
那么你将需要这个方法:
@Override
public void onActivityResult(int requestCode,int resultCode,Intent resultData) {
if (resultCode != RESULT_OK)
return;
Uri treeUri = resultData.getData();
DocumentFile pickedDir = DocumentFile.fromTreeUri(this, treeUri);
grantUriPermission(getPackageName(), treeUri, Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
getContentResolver().takePersistableUriPermission(treeUri, Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
DocumentFile YourAudioFile= pickedDir.findFile("YourAudioFileNameGoesHere");
// And here you can delete YourAudioFile or do whatever you want with it
}