2016-06-06 3 views
3

SD 카드의 사전을 읽으려고합니다. 폴더 내용은 타사 응용 프로그램 (예 : dropbox)에서 관리합니다.임의의 SD 카드 폴더에서 읽기

난 내 응용 프로그램 권한 부여 있지만 :이 앱은 삼성 갤럭시 탭 10.1 (안드로이드 5.0.2) 그래서 SD 카드 및 파일의 정확한 경로를 알고있는 유일한 장치의 한 종류에 사용됩니다

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 

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

/storage/extSdCard/sip.png

를 내가 호출 할 때 :

FileOutputStream out = new FileOutputStream("/storage/extSdCard/sip.png"); 

그것은 예외 :

나는 읽으려고하고있다

예외 java.io.FileNotFoundException : /storage/extSdCard/sip.png : 열기 실패 : EACCES (권한이 거부)

나는 또한 시도 : 나는 무엇이 필요합니까

grantUriPermission(getPackageName(), new Uri.parse("/storage/extSdCard"), 
Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION); 

파일에 액세스하려면 어떻게해야합니까?

답변

2

파일에 액세스하려면 어떻게해야합니까?

Android 4.4 이상에서는 removable storage의 임의의 위치에 대한 직접 파일 시스템 액세스 권한이 없습니다.

가능하면 다른 위치로 파일을 이동하십시오 (예 : external storage).

또는 use ACTION_OPEN_DOCUMENT와 사용자가 당신이 당신의 ACTION_OPEN_DOCUMENT 요청에서 onActivityResult()에서 얻을 Uri에 의해 식별되는 내용 일 ContentResolveropenInputStream()을 사용하여 파일을 선택합니다.

+0

해당 앱은 이동식 저장소에 있고 다른 앱과 동기화 된 동적 읽기 파일을 사용합니다. 더 많은 양의 파일을 읽을 수있는 또 다른 방법이 있습니까? –

+0

@ M.Sestak : 죄송합니다. 귀하의 질문을 이해할 수 없습니다. – CommonsWare

+0

@CommonsWare 링크를 제공해 주셔서 감사합니다. 고객에게 설명하는 동안 많은 도움이됩니다. –