2017-09-08 2 views
1

다음은 start.mp4 파일의 sdcard 경로입니다. 이 파일을 읽기 모드로 가져올 수 있지만 rw 모드로 열 수 없습니다. 런타임 권한도 부여했습니다.rd 모드의 RandomAccessFile 파일은 sd 카드에 파일을 쓸 때만 사용할 수 없습니다.

/storage/3263-6232/piyush/Download/start.mp4: open failed: EACCES (Permission denied) 

코드 :

String sdCardPath = "/storage/3263-6232/piyush/Download/start.mp4"; 
File file = new File(sdCardPath); 
try{ 

RandomAccessFile rfs = new RandomAccessFile(file, "rw"); 

rfs.seek(file.length()); 
rfs.close(); 

} catch (IOException e) { 
    e.printStackTrace(); 
} 

내가 SDCARD에 존재하는 파일에 sdcardpath을 촬영 한 위의 코드에서 그것은 예외가 발생합니다.

/storage/3263-6232/piyush/Download/start.mp4: open failed: EACCES (Permission denied) 
+0

그래서 당신이 파일에 쓰기 권한이없는 방문 할 수 있습니다. '주어진 런타임 권한'을 정의하십시오. 그리고 .mp4 파일에 대한 쓰기 권한이 필요한 이유는 무엇입니까? – EJP

+0

파일을 암호화하고 해당 파일의 처음 10 비트를 변경해야합니다. 나는 내부 메모리에서했을 때 같은 일을 할 수 있지만 SD 카드에서 할 수 없습니다. @EJP –

답변

0

Manifest은 다음과 같습니다합니까 : 나는 FilenotFound Exception 제공 RandomAccessFile를 사용의 OutputStream에서 해당 파일을 열려고 할 때마다 그 이후보다 ? 그런 다음 당신은 당신이 파일에 모든 작업을 수행하기 전에 WRITE_EXTERNAL_STORAGE 허락을 확인 테스트 후 M 장치를 사용하는 경우 : uses-permission 태그는 응용 프로그램 태그

<manifest> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> ... <application> ... <activity> ... </activity> </application> </manifest>

PS 밖에 할 필요가있다.

1

위 경로는 관련 타사 응용 프로그램에 대한 쓰기 액세스 권한이 다른 곳에서 파일을 읽을 수있다/<Your package Name>/파일이 문제를 해결할 수/저장/3263-6232/안드로이드/데이터로 저장 위치를 ​​변경 새로운 파일을 쓸 수는 없습니다.

또는 쓰기 권한을 얻기 위해 Storage Access Framework를 적용해야합니다.

자세한 내용은 당신이 https://developer.android.com/guide/topics/providers/document-provider.html

관련 문제