2014-10-31 2 views
0

Иногда я вижу письма без приложения.Отправка приложения не всегда работает

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

Мой отправить код -

 Intent email = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE); 

     email.putExtra(Intent.EXTRA_SUBJECT, "Device Logs"); 

     email.setType("text/plain"); 

     email.putExtra(Intent.EXTRA_TEXT, getEmailContents()); 

     File file = writeLogFile(); 

     ArrayList<Uri> uriList = new ArrayList<Uri>(); 

     Uri uri = Uri.fromFile(file); 

     uriList.add(uri); 

     email.putExtra(Intent.EXTRA_STREAM, uriList); 

     startActivity(Intent.createChooser(email, "Choose an Email client :")); 

Код файла -

public File writeLogFile() 
     { 

      if(builder != null) 
      { 
       for(int i =0;i <receiptlist.size();i++) 
       { 
        builder.append(receiptlist.get(i) + "\n"); 
       } 
      } 

      //to create a Text file name "logcat.txt" in SDCard 
      File sdCard = Environment.getExternalStorageDirectory(); 
      File dir = new File (sdCard.getAbsolutePath() + "/myLogcat"); 

      if(!dir.exists()) 
       dir.mkdirs(); 

      File file = new File(dir, "logcat.txt"); 

      try {  
        //to write logcat in text file 
        FileOutputStream fOut = new FileOutputStream(file); 
        OutputStreamWriter osw = new OutputStreamWriter(fOut); 

        // Write the string to the file 
        osw.write(builder.toString());    
        osw.flush(); 
        osw.close(); 
       } catch (FileNotFoundException e) { 
        e.printStackTrace(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 

       return file; 
     } 

Что я делаю неправильно?

ответ

0

Неисправность устранена - Я удалял файл по адресу onDestroy().

@Override 
    public void onDestroy() 
    { 
     super.onDestroy(); 
     File sdCard = Environment.getExternalStorageDirectory(); 
     String sdPath = sdCard.getAbsolutePath() + "/myLogcat"; 

     File sdDir = new File(sdPath); 

     if(sdDir.exists()) 
      deleteRecursive(sdDir); 
    } 

Таким образом, если пользователь находится в деятельности и отправляет файл, то он отправляется, но если пользователь покидает активность и возвращается, и посылает затем не отправляется из-за чего активность удалила файл уже.

Смежные вопросы