2012-06-04 2 views
0

내 앱에 약간의 문제가 있습니다. 사진을 찍어 저장 한 다음 갤러리에로드하는 기능이 있습니다.내부 저장소의 파일을 갤러리로로드 할 수 없습니다.

그림을 저장하기 전에 전화 번호가 ExternalStorage인지 확인합니다. 그렇지 않으면 그림은 getFilesDir()와 함께 Files 디렉토리에 저장되지만 내부 저장소에서 갤러리에로드 할 수 없습니다.

코드 (ExternalStorage를 다시 스캔 완벽하게 작동) ExternalStorage에서 갤러리에 사진을로드 : Files 디렉토리에서 갤러리에 사진을로드

path = Environment.getExternalStorageDirectory()+""; 
c.sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" 
         + path))); 

코드를 (아무것도로드되지 않습니다) :

c.sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" 
        + c.getFilesDir()+"/files/"))); 

PS : 파일이 있습니다. 나는 adb shell으로 그것을 검사했다.

+0

로드가 끝나면 null이 되나요? 아니면 오류가 있습니까? – AedonEtLIRA

+0

오류는 없지만 갤러리의 그림을 볼 수 없습니다. – 113408

+0

이미지 표시 방법 코드를 표시 할 수 있습니까? – AedonEtLIRA

답변

2

기본적으로 내부 저장소 (응용 프로그램 폴더 -/파일)에 저장된 파일은 해당 파일을 만든 응용 프로그램에서만 사용할 수 있습니다. 파일 시스템 수준에서 보장되므로 갤러리 응용 프로그램에서 파일을로드 할 수 없습니다. 내부 저장소에 새 파일을 저장하는 경우 다른 응용 프로그램에서 파일을 읽기/쓰기 가능하도록 명시 적으로 허용해야합니다. 참조 : http://developer.android.com/guide/topics/data/data-storage.html#filesInternal

"파일을 작성 (또는 대체 동일한 이름의 파일) 및 응용 프로그램에 대한 비공개 할 것 MODE_PRIVATE 가능한 다른 모드는 다음과 같습니다.. MODE_APPEND, MODE_WORLD_READABLE 및 MODE_WORLD_WRITEABLE"

+0

갤러리 앱은 실제로 액세스 권한이 부여되었는지 확인하지 않고 다른 앱의 내부 저장 공간에있는 파일에 액세스 할 수 없다고 생각할 가능성이 높지만 더 정확한 대답입니다. –

+0

갤러리 응용 프로그램에서 아무 것도 "추측"할 필요가 없습니다. 그건 내 작업 코드 조각입니다. 'String filePath = getApplication(). getFilesDir(). getAbsolutePath() + File.separator + fileName; 파일 f = 새 파일 (filePath); 인 텐트 intent = 새 인 텐트(); intent.setAction (android.content.Intent.ACTION_VIEW); intent.setDataAndType (Uri.fromFile (f), "image/*"); startActivity (intent); ' – rockford

+0

듣기가 좋았습니다. 호기심에서 갤러리의 컬렉션에 이미지를 추가 할 수 있습니까? 아니면 갤러리의 뷰어에서만 앱의 요구에 따라 이미지를 표시 할 수 있습니까? –

관련 문제