안녕하세요. 제가 내외부 메모리에서 이미지파일을 저장해서 공유하는 기능을 구현중인데요.
제대로 구현한것인지 알고자 글을 올립니다. 공유부분인데 설정을 잘못한건지 공유가 되는 어플이 있고 안되는 어플이 있네요..ㅜㅜ 

우선 외부메모리(sdcard)에서 파일 저장하고 공유한 부분입니다.
 externalDir = new File(Environment.getExternalStorageDirectory().getAbsolutePath(),"temp");
 externalDir.mkdir();
요렇게 우선 디렉토리를 생성하였습니다.

그다음에 tempBitmap라는 비트맵파일을 미리 만들어 놓고
FileOutputStream out = new FileOutputStream("/sdcard/temp/temp.jpg");
tempBitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);
요런식으로 temp디렉토리에 있는 temp.jpg에 저장을 하였구요.

다음으로는 공유하는 부분입니다.
 Intent intent = new Intent(Intent.ACTION_SEND);
 File file = new File("/sdcard/roughmap/temp.jpg"); 
 Uri uri =Uri.fromFile(file);
 intent.setType("image/jpg");
 intent.putExtra(Intent.EXTRA_STREAM,uri );
 startActivity(Intent.createChooser(intent, "Choose"));
이렇게 해서 sdcard에 이미지를 저장한 후 공유하는 것을 구현하였습니다.

다음은 내부메모리에서 파일을 저장하고 공유한 부분입니다.
따로 디렉토리 설정안하고 기본(files)디렉토리밑에 저장하였습니다.
위와 마찬가지로 tempBitmap이라는 비트맵을 만들어서 내부메모리에 temp.jpg라는 파일에 저장하는 부분입니다.
FileOutputStream internalOut = getContext().openFileOutput("temp.jpg",Context.MODE_WORLD_READABLE);
tempBitmap.compress(Bitmap.CompressFormat.JPEG, 100, internalOut);

다음으로 공유하는 부분입니다.
 File file = new File("/data/data/설치된 패키지 이름/files/temp.jpg")  ;
 Uri uri =Uri.fromFile(file);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.setType("image/jpg");
intent.putExtra(Intent.EXTRA_STREAM,uri );
startActivity(Intent.createChooser(intent, "Choose"));
이렇게 해서 내부메모리에 이미지를 저장한 후 공유하는 것을 구현하였습니다. 빨간부분이 sdcard부분과 다른 부분입니다.

여기서 두가지 질문이 있습니다.
우선은 제가 file explorer에서 파일들 접근권한이 drwx------ 이런식으로 10글자로 표시된것을 보았는데요.
이것들의 의미를 알려주실분 계신가요? -rw------- 이런것도 있었고 한데 제가 검색능력이 모잘라다보니 아직도 못찾았네요..ㅜㅜ

제가 위의 부분을 넥서스원과 디자이어에서 테스트중입니다.
그런데 넥서스원에서는 트위터 공식어플과 기본메시징프로그램에서 내외부에 저장된 이미지가 정상적으로 가는 것을 보았지만 쥐메일프로그램에서는 메일이 아예 안가고 밑에 이미지 용량도 안떴습니다. 그런데 기본 갤러리에서는 이미지를 공유하니 쥐메일에서 바로 이미지파일용량이 뜨더군요. 하지만 기본갤러리에서도 전송이 되지 않았습니다.
그리고 디자이어에서는 기본메일프로그램에서는 바로 정상적으로 갔지만 기본메시징프로그램이 공유목록에 안잡혀서 메시지는 테스트하지 못하엿습니다.
위에서처럼 데이터를 공유해서 보낼때는 전적으로 설치된 프로그램(트위터,메시징,쥐메일등)에만 의존되는 것인가요?
아니면 제가 위의 코드에서 설정을 잘못한 부분이 있는 건가요?

 개발은 2.1버전에서 하고 있습니다.