编辑:因为我已经要求允许在运行时我的问题是不重复的Android permission doesn't work even if I have declared it权限被拒绝
EDIT2:写入文件到Environment.getexternalstoragedirectory
是确定的,但到SD卡给出了错误
嘿我试着写与RandomAccessFile
MP3文件到SD卡,这是我的代码:
public void save(String newFilename) throws IOException, NotSupportedException {
if (file.compareTo(new File(newFilename)) == 0) {
throw new IllegalArgumentException("Save filename same as source filename");
}
RandomAccessFile saveFile = new RandomAccessFile(newFilename, "rw");
try {
if (hasId3v2Tag()) {
saveFile.write(id3v2Tag.toBytes());
}
saveMpegFrames(saveFile);
if (hasCustomTag()) {
saveFile.write(customTag);
}
if (hasId3v1Tag()) {
saveFile.write(id3v1Tag.toBytes());
}
} finally {
saveFile.close();
}
}
private void saveMpegFrames(RandomAccessFile saveFile) throws IOException {
int filePos = xingOffset;
if (filePos < 0) filePos = startOffset;
if (filePos < 0) return;
if (endOffset < filePos) return;
RandomAccessFile randomAccessFile = new RandomAccessFile(this.file.getPath(), "r");
byte[] bytes = new byte[bufferLength];
try {
randomAccessFile.seek(filePos);
while (true) {
int bytesRead = randomAccessFile.read(bytes, 0, bufferLength);
if (filePos + bytesRead <= endOffset) {
saveFile.write(bytes, 0, bytesRead);
filePos += bytesRead;
} else {
saveFile.write(bytes, 0, endOffset - filePos + 1);
break;
}
}
} finally {
randomAccessFile.close();
}
}
,我在logcat
收到此错误:
java.io.FileNotFoundException: /storage/15D5-14F7/Musics/Music/Dream On.mp3: open failed: EACCES (Permission denied)
但我有写入和读取权限为什么会发生这种情况?
谢谢我会这样做,并请原谅我的英语不好@MikeM。 –
参考http://stackoverflow.com/questions/8854359/exception-open-failed-eacces-permission-denied-on-android – sasikumar
谢谢,但我已经做了所有的@sasikumar –