Java 删除失败:EACCES(权限被拒绝)-无法从sd卡删除文件
我的应用程序使用android的内置录音机录制音频。录制的音频文件在外部(可移动)sd卡中创建。我成功地将其复制到应用程序的内部存储。但是,当我想从sd卡中删除记录的文件时,会发生以下错误:Java 删除失败:EACCES(权限被拒绝)-无法从sd卡删除文件,java,android,permissions,delete-file,Java,Android,Permissions,Delete File,我的应用程序使用android的内置录音机录制音频。录制的音频文件在外部(可移动)sd卡中创建。我成功地将其复制到应用程序的内部存储。但是,当我想从sd卡中删除记录的文件时,会发生以下错误: 删除失败:EACCES(权限被拒绝):/storage/43F8-16FA/Voice Recorder/Voice 013_sd.m4a 请注意,我拥有读取外部存储和写入外部存储权限。另外,我有运行时权限,我使用安卓6.0 // I get this file path from onActivityRe
删除失败:EACCES(权限被拒绝):/storage/43F8-16FA/Voice Recorder/Voice 013_sd.m4a
请注意,我拥有读取外部存储和写入外部存储权限。另外,我有运行时权限,我使用安卓6.0
// I get this file path from onActivityResult
String fileAbsolutePath = "/storage/43F8-16FA/Voice Recorder/Voice 014_sd.m4a";
// copy the file to internal storage
copyFileToInternalStorage(fileAbsolutePath);
// delete recorded file from sd card
File file = new File(fileAbsolutePath);
if (file.exists()) {
// THE FILE EXISTS BUT IT FAILS TO DELETE THE FILE
file.delete();
}
文件操作是运行时权限,是否查询用户确认?请注意,仅要求
{READ,WRITE}\u外部存储是不够的,Android>=6.0需要每个应用程序的运行时要求,在应用程序中请求一些代码以查询用户确认。谁创建了“Voice Recorder”目录?//我从onActivityResult获取此文件路径
哪个操作的onActivityResult?请表现出你的意图。此外,您没有从onActivityResult提供的意图数据中获取任何内容,而是使用硬编码路径。请详细说明。使用的设备是哪一个Android版本?自从Android Kitkat发布以来,可移动微型sd卡是只读的。我有运行时权限,我使用Android 6.0(棉花糖),语音记录器目录是由Android内置的语音记录器应用程序创建的。另外,文件路径是正确的,我已经检查过了。