안드로이드 개발 질문/답변
(글 수 45,052)
invImg.setDrawingCacheEnabled(true);
Bitmap b = invImg.getDrawingCache();
File invDir = new File(Environment.getExternalStorageDirectory() + "/inv_img");
invDir.mkdirs();
File file = new File(invDir, "InvImage" + curTime + ".png");
FileOutputStream fos;
try {
fos = new FileOutputStream(file);
b.compress(CompressFormat.PNG, 95, fos);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
Uri uri = Uri.fromFile(file);
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("image/png");
i.putExtra(Intent.EXTRA_STREAM, uri);
InvitationCreator.this.startActivity(i);
이런식으로 파일을 생성해서 첨부하여 MMS를 보내는 내용입니다.
근데 갤럭시s 2.2에서는 파일첨부가 멀쩡히 되는데 2.1에서는 메시지 전송 까지는 가지만 파일첨부가 안되네요..
혹시 이유를 아시는분 계시다면 꼭좀 알려주셨으면 합니다.
수고하셔요~~




자답
String url = "";
try {
url = Media.insertImage(context.getContentResolver(), file.getAbsolutePath(), file.getName(), file.getName());
} catch (FileNotFoundException e) {
e.printStackTrace();
}
Intent i = new Intent(Intent.ACTION_SEND);
// i.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
i.setType("image/png");
i.putExtra(Intent.EXTRA_STREAM, Uri.parse(url));
context.startActivity(i);
이처럼 파일로부터 url을 가져다가 URI로 파싱하는 방식으로 하면 됩니다.
Uri.fromFile(file) 이걸로 하믄 일부 폰에서 첨부가 안됨(갤스 2.1 등)