2012-03-26 5 views
2

Environment.getExternalStoragePublicDirectory ( Environment.DIRECTORY_PICTURES)를 사용하여 이미지를 저장할 폴더를 찾는 앱을 작성했습니다. 그런 다음 jpg를 해당 폴더에 쓴 다음 사용자가 전자 메일, SMS, Facebook ... 또는 전화가 설정된 응용 프로그램을 허용하도록 다음 코드를 사용합니다.이미지를 Android 내부 메모리에 저장하고 인 텐트를 사용하여 이메일로 보내기

Intent i = new Intent(Intent.ACTION_SEND); 
    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    i.setType("image/jpg"); 
    File shareImg = new File(fileName); 
    i.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(shareImg)); 
    startActivity(i); 

이 코드는 테스트 한 장치에서 정상적으로 작동합니다. 이제 SD 카드가없는 사용자는이 코드를 사용할 수 없다는 사실을 알게되었습니다. 그래서 이미지를 내부 메모리에 쓰려고했습니다. 내 apps 폴더에 이미지를 쓰고 Context.MODE_WORLD_READABLE로 액세스를 설정할 수 있었지만 의도, GMail, SMS 또는 다른지도를 실행하면 이미지 첨부가 불가능하다는 메시지가 나타납니다. . 문제는 이미지가 장치의 실제 "그림"폴더에 없지만 내부 저장 장치의 Environment.getExternalStoragePublicDirectory ( Environment.DIRECTORY_PICTURES)와 동일한 라우팅을 찾을 수 없다고 생각했습니다. 다른 누구도 이런 식으로 할 수 있었습니까? 당신은뿐만 아니라 자신의 대답을 받아 들여야 -

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) 

답변

1

내가 사용하는 내 코드를 변경하여이 문제를 해결 할 수 있었다 , 처음에는 진짜 열린 질문이었던 한, 완벽하게 합리적이고 바람직한 (정말로 대답하지 않은 질문을위한 공간을 만들고 다른 사람들이 이것들을 보도록 동기를 부여하기 위해). 감사 :)
+0

한 솔루션과 함께 다음과 같은 사항에 대해 :

getExternalFilesDir(Environment.DIRECTORY_PICTURES) 

대신 : –

관련 문제