2016-10-21 4 views
0

Я прочитал и перечитал свой код, но он выглядит хорошо для меня, но письмо отправляется без вложения.Проблема с электронной почтой, отправленной неправильно без прикрепления файла

Я даже перечитываю файл (readFile()) перед вызовом активности электронной почты.

Что случилось с моим кодом:

private void sndRecMail(){ 
    btnSend = (Button) findViewById(R.id.send); 
    btnSend.setVisibility(View.VISIBLE); 

    btnSend.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

      String subject = "file vendors"; 

      Intent email = new Intent(Intent.ACTION_SEND); 
      email.setType("*/*"); 
      email.putExtra(Intent.EXTRA_EMAIL, new String[]{"[email protected]"}); 
      email.putExtra(Intent.EXTRA_SUBJECT, subject); 
      email.putExtra(Intent.EXTRA_TEXT, message); 

      String dir = context.getFilesDir().getAbsolutePath(); 
      fi = new File(dir, "vendors.txt"); 
      if (!fi.exists() || !fi.canRead()) 
       return; 

      readFile(); // check if file is not empty and readable!!! 

      Uri uri = Uri.fromFile(fi); 
      email.putExtra(Intent.EXTRA_STREAM, uri); 
      startActivity(Intent.createChooser(email, "Select Email Client")); 

     } 
    }); 

} 
+0

'ReadFile();' 1 Что смысл, если вы не проверяете возвращаемое значение и возвращаете, если не читаете? – greenapps

+0

'getFilesDir()' является частной внутренней памятью для вашего приложения. Приложение электронной почты не может читать. – greenapps

+0

1-й комментарий: Я ленился: я проверил через отладчик. 2-й комментарий: Я думаю, что это проблема. I – narb

ответ

0

Вы должны включить эти разрешения, а также:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 

Также попробуйте:

Uri.parse("file://" + fi); 
Смежные вопросы