使用Intent的Android多個電子郵件附件我一直在研究Android程序,使用Intent發送包含附件(圖像文件,音頻文件等)的電子郵件ACTION_SEND。電子郵件只有一個附件時,該程序正在運行。我曾經Intent.putExtra(android.content.Intent.EXTRA_STREAM, uri)將指定的圖像文件附加到郵件中,并且工作正常,郵件可以通過Gmail傳送。但是,當我嘗試通過Intent.putExtra(android.content.Intent.EXTRA_STREAM, uri)多次調用將多個圖像附加到同一郵件時,它無法正常工作。電子郵件中沒有顯示任何附件。我搜索了SDK文檔和Android編程用戶組關于電子郵件附件但找不到任何相關信息。但是,我發現有另一個意圖常量ACTION_SEND_MULTIPLE(自API級別4起可用)可能符合我的要求?;赟DK文檔,它只是聲明它向其他人提供多個數據,它的工作方式類似ACTION_SEND,除了數據是多個。但我還是無法弄清楚這個命令的正確用法。我試圖聲明意圖ACTION_SEND_MULTIPLE,然后putExtra(EXTRA_STREAM, uri)多次調用以附加多個圖像,但我得到了與之前相同的錯誤結果,沒有任何附件顯示在電子郵件中。有沒有人試過ACTION_SEND_MULTIPLE并使用多個電子郵件附件?
3 回答

慕娘9325324
TA貢獻1783條經驗 獲得超4個贊
以下是創建包含多個附件的emailIntent所需的代碼。
public static void email(Context context, String emailTo, String emailCC, String subject, String emailText, List<String> filePaths){ //need to "send multiple" to get more than one attachment final Intent emailIntent = new Intent(Intent.ACTION_SEND_MULTIPLE); emailIntent.setType("text/plain"); emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{emailTo}); emailIntent.putExtra(android.content.Intent.EXTRA_CC, new String[]{emailCC}); emailIntent.putExtra(Intent.EXTRA_SUBJECT, subject); emailIntent.putExtra(Intent.EXTRA_TEXT, emailText); //has to be an ArrayList ArrayList<Uri> uris = new ArrayList<Uri>(); //convert from paths to Android friendly Parcelable Uri's for (String file : filePaths) { File fileIn = new File(file); Uri u = Uri.fromFile(fileIn); uris.add(u); } emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris); context.startActivity(Intent.createChooser(emailIntent, "Send mail..."));}

素胚勾勒不出你
TA貢獻1827條經驗 獲得超9個贊
ACTION_SEND_MULTIPLE
應該是行動
然后 emailIntent.setType("text/plain");
其次是:
ArrayList<Uri> uris = new ArrayList<Uri>();String[] filePaths = new String[] {"sdcard/sample.png", "sdcard/sample.png"};for (String file : filePaths){ File fileIn = new File(file); Uri u = Uri.fromFile(fileIn); uris.add(u);}emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);startActivity(emailIntent);
這適合我。

慕虎7371278
TA貢獻1802條經驗 獲得超4個贊
雖然這是一個老線程,但由于它在谷歌搜索的頂部顯示,我想添加一個小提示,使其完成,因此我弄亂了它。
必須使附加文件對郵件活動可讀,否則將不會附加它們。所以你必須在某個地方打電話
fileIn.setReadable(true, false)
- 3 回答
- 0 關注
- 430 瀏覽
添加回答
舉報
0/150
提交
取消