2017-03-11 1 views
1

나는 갤럭시 J5 (안드로이드 6.0)에 다음과 같은 오류를 받고 있어요 이미지 저장하려고 할 때 :개방 실패 : EACCES (권한이 거부)

java.io.FileNotFoundException: /storage/FA49-E5D3/DCIM/Camera/20170311_140435.jpg: open failed: EACCES (Permission denied) 

을 나는 다음과 같은 권한이 있습니다

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
을 활동에

:

이 모토로라 G3에서 잘 작동 (안드로이드 6.0)이 경로에 이미지를 저장 것을
if (Build.VERSION.SDK_INT >= 23) { 
     System.out.println("checking permissions..."); 
     // -------------------------------------- PERMISOS CAMARA ------------------------------------------------- 
     if (checkSelfPermission("android.permission.CAMERA") != PackageManager.PERMISSION_GRANTED) { 
      requestPermissions(new String[]{"android.permission.CAMERA"}, 137); 
      return; 
     } 
     // ---------------------------------- PERMISOS READ EXTERNAL --------------------------------------------- 
     if (checkSelfPermission("android.permission.READ_EXTERNAL_STORAGE") != PackageManager.PERMISSION_GRANTED) { 
      requestPermissions(new String[]{"android.permission.READ_EXTERNAL_STORAGE"}, 139); 
      return; 
     } 
     // ---------------------------------- PERMISOS WRITE EXTERNAL --------------------------------------------- 
     if (checkSelfPermission("android.permission.WRITE_EXTERNAL_STORAGE") != PackageManager.PERMISSION_GRANTED) { 
      requestPermissions(new String[]{"android.permission.WRITE_EXTERNAL_STORAGE"}, 138); 
      return; 
     } 
    } else { 
     System.out.println("API < 23... Skip permissions..."); 
    } 

주 :

/storage/emulated/0/DCIM/Camera/IMG_20170311_115623958.jpg 
+0

표시 하시겠습니까? – antlersoft

+0

public String getOriginalImagePath() { String [] projection = {MediaStore.Images.Media.DATA}; 커서 커서 = this.managedQuery ( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 투영, null, null, null); int column_index_data = cursor.getColumnIndexOrThrow (MediaStore.Images.Media.DATA); cursor.moveToLast(); return cursor.getString (column_index_data); } – danielctf

답변

2

마이크로 SD 카드에 파일을 쓰려고합니다. 그러나 그들은 요즘 애플 리케이션을 위해서만 읽혀진다. 시스템 카메라 앱에서만 SD의 DCIM 폴더에 쓸 수있는 권한을 가질 수 있습니다.

getExternalFilesDirs()에서 반환 한 두 번째 항목을 살펴보십시오. 앱이 SD 카드의 해당 앱 디렉토리에 쓸 수 있습니다.

+0

그것은 작동합니다. 감사. – danielctf

관련 문제