編輯:因爲我已經要求允許在運行時我的問題是不重複的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 –