亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用Intent的Android多個電子郵件附件

使用Intent的Android多個電子郵件附件

皈依舞 2019-11-17 16:12:55
使用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..."));}



查看完整回答
反對 回復 2019-11-18
?
素胚勾勒不出你

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);

這適合我。



查看完整回答
反對 回復 2019-11-18
?
慕虎7371278

TA貢獻1802條經驗 獲得超4個贊

雖然這是一個老線程,但由于它在谷歌搜索的頂部顯示,我想添加一個小提示,使其完成,因此我弄亂了它。

必須使附加文件對郵件活動可讀,否則將不會附加它們。所以你必須在某個地方打電話

fileIn.setReadable(true, false)


查看完整回答
反對 回復 2019-11-18
  • 3 回答
  • 0 關注
  • 430 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號