2014-04-23 3 views
0

내 앱에서 내 CSV 파일을 전자 메일로 보내려고합니다. 내가 보낸 사람을 보여 주면 내가 보낸 사람, 제목, 메시지 및 첨부 파일을 보여 주지만 전화를하면 "첨부 파일을 보여줄 수 없었습니다"라고 표시됩니다. 내 전자 메일 상자를 확인하면 메시지가 있지만 파일이 없습니다.전자 메일로 파일을 보내려고합니다.

String to=destinatario.getText().toString().trim(); 
       String subj=subject.getText().toString().trim(); 
       String msg=message.getText().toString().trim(); 

       if(to.length() < 1) 
       { 
        Toast.makeText(getApplicationContext(), "Mete para quem quer mandar", Toast.LENGTH_LONG).show(); 
       } 
       else if (subj.length() < 1) { 
        Toast.makeText(getApplicationContext(), "Introduza o Tema", Toast.LENGTH_LONG).show(); 
       } 
       else if (msg.length() < 1) { 
        Toast.makeText(getApplicationContext(), "Introduza Mensagem", Toast.LENGTH_LONG).show(); 
       } 
       else { 
        Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); 
        //emailIntent.setType("image/jpeg"); 
        emailIntent.setType("message/rfc822"); 
        emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{to}); 
        emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subj); 
        emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, msg); 
        emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(file.getAbsolutePath())); 
        startActivity(Intent.createChooser(emailIntent, "A enviar...")); 
       } 
      } 

왜 이런 일이 발생하는지 알고 있습니까?

답변

1

추가 스트림 Uri.parse String을 "file://" + file.getAbsolutePath()으로 변경하십시오. 파일이 올바른 파일

+0

고맙습니다. – user2257792

+0

Uri.fromFile (파일)이 더 좋을 것입니다. – r2DoesInc

0

나는 CSV 첨부 파일과 의도를 만들려면 다음 코드를 사용하여 그대로

이 오래 작동합니다.

ArrayList<Uri> uriList = new ArrayList<Uri>(); 
    ArrayList<String> fileNameList = new ArrayList<String>(); 
    uriList.add(Uri.fromFile(f)); 
    fileNameList.add(f.getName()); 

    final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE); 
    emailIntent.setType("text/plain"); 
    emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, 
      new String[]{""}); 
    emailIntent.putExtra(android.content.Intent.EXTRA_CC, 
      new String[]{""}); 
    emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Log"); 

    if (!uriList.isEmpty()) { 
     emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uriList); 
     emailIntent.putStringArrayListExtra(Intent.EXTRA_TEXT, fileNameList); 
    } 
+0

나는 이것 또한 시도해 볼 것이다. 고맙다. :) – user2257792

+0

이것은 메시지 본문에 파일 이름을 포함하고 있지만 불필요한 경우 fileNameList 코드를 제거 할 수있다. uriList는 중요한 부분이며, 단일 객체를 전달하는 동안 작업을 수행 할 수 없습니다. – r2DoesInc

관련 문제