2012-01-27 4 views
1

내 앱에서 이미지를 전자 메일 본문에 프로그래밍 방식으로 첨부하려고합니다. 그 작업을 수행하는 방법에 대한 몇 가지 주제를 보았지만 동일한 방식으로 코드를 작성했지만 쓸모가 없습니다. (post에서) 다른 쪽에서 이미지를 가져올 수 없습니다.이메일에 첨부 된 이미지를 수신하지 못했습니다.

Intent emailIntent=new Intent(Intent.ACTION_SEND); 
      emailIntent.setData(Uri.parse("mailto:")); 
      emailIntent.setType("image/jpg"); 
      emailIntent.putExtra(Intent.EXTRA_SUBJECT, getResources().getString(R.string.mail_partage_objet)); 
      emailIntent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(readEmailTemplate())); 
      String imageFilePath=Constants.PHOTO_CACHE_PATH+"/"+currentPlace.getPhotoFileName(); 
      Log.d(TAG,"Picture Path: "+imageFilePath); 
      emailIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 
      emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(imageFilePath)); 
      startActivity(Intent.createChooser(emailIntent, getResources().getString(R.string.email_share))); 
PHOTO_CACHE_PATH 이미지가 저장되는 디렉토리의 경로입니다

하고 SD 카드

+0

안녕 Houcine, 내가 어떤 안드로이드 개발자입니다 없지만 고려해야 할 몇 가지 첨부 및 이메일에서 볼 수없는 이미지입니다 또는 전혀 붙이지 않았습니까? 첨부하려는 파일을 새 파일 이름으로 저장하려고하면 어떻게됩니까?이 새 파일 이름을 확인 할 수 있습니까? – Neo

+0

@ 네오 : 질문을 게시 한 사람에게 물어보아야합니다 :) ^^ 코드를 정리하기 위해 질문을 편집했습니다. ^^ – Houcine

+0

@Houcine LOL 네, 그래야합니다.하지만 이름을 입력하는 것이 더 쉬웠습니다. user748677 그것들은 통계적 그림처럼 들린다.) – Neo

답변

0

에있어 난 당신이 잊고 생각 : emailIntent.setType("application/octet-stream"); 자세한 내용은 여기 내 코드입니다. multiattachments에 대한

예 :

Intent exportMessageIntent = new Intent(
      android.content.Intent.ACTION_SEND_MULTIPLE); 
    exportMessageIntent.setType("text/plain"); 
    exportMessageIntent.setType("application/octet-stream"); 
    ArrayList<Uri> uris = new ArrayList<Uri>(); 

      //array of urls to your files on device - they are strings 
    filePaths = new String[] { "path1","path2" }; //for your case just insert imageFilePath -> filePaths = new String[] { imageFilePath }; 
      //create files from string array of paths 
    for (String file : filePaths) { 
     File fileIn = new File(file); 
     Uri u = Uri.fromFile(fileIn); 
     uris.add(u); 
    } 
    exportMessageIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, 
      uris); 

    exportMessageIntent 
      .putExtra(Intent.ACTION_DEFAULT, "test/"); 

    exportMessageIntent.putExtra(Intent.EXTRA_SUBJECT,"Subject text"); 

    exportMessageIntent.putExtra(Intent.EXTRA_TEXT,"bodytext"); 

    startActivity(exportMessageIntent); 

는 희망이 도움이, 토니

+0

토니, 옥텟 스트림 대신 MIME 형식을 jpeg 이미지로 설정했습니다. – Neo

+0

네오, 나는 그것을 보지 못했습니다. 그러나 누군가가 그것을 필요로한다면 작업 예제를 남겨 둘 것입니다. 어쩌면 첫 번째 댓글 Neo에 관한 user748677 일 수 있습니다. 나는 그가 우편으로 (우편물을 보내기 전에) 그것을 공유한다면 그는 첨부 파일을보아야 만합니다. 네오와 동의합니다. – toni

관련 문제