嗨im試圖創建一個應用程序,創建一個word文件,並通過郵件發送它。 到目前爲止,我設法創建的文件,用於調用郵件應用程序選擇器所需的意圖, 但是我遇到的2個問題:Android - 如何將文件附加到郵件,而不使用內容提供商
1)我收到一封含有比郵件程序的詳細列表 - 無線網絡,BT等顯示爲以及
2)如果我選擇gmail,請在gmail中查看文件名作爲附件,但發送後我收不到任何文件。 我試圖使用URI而不是Uri,但是當gmail嘗試附加文件時,我得到了javaNullExeption。
的問題是:如何發送附件(不使用複雜類等內容提供商如果可能的話)
我使用的代碼:
來創建該文件:
public void saveFile(String fileName,String content) throws IOException,FileNotFoundException
{
FileOutputStream fos = getContext().openFileOutput(fileName, Context.MODE_WORLD_READABLE);
fos.write(content.getBytes());
fos.close();
}
發送它:
public void sendAsMail(Context context,String fileName)
{
File file = new File(getContext().getFilesDir().getAbsolutePath()+"/"+fileName);
//file.setReadable(true);
//URI myUri = file.toURI();
Uri myUri=Uri.fromFile(file);
Intent emailIntent = new Intent (Intent.ACTION_SEND);
emailIntent.setType("text/plain");
emailIntent.putExtra(Intent.EXTRA_EMAIL,"");
emailIntent.putExtra(Intent.EXTRA_SUBJECT, context.getResources().getString(R.string.free_search_mail_subject));
emailIntent.putExtra(Intent.EXTRA_TEXT,context.getResources().getString(R.string.free_search_mail_content));
emailIntent.putExtra(Intent.EXTRA_STREAM, myUri);
context.startActivity(Intent.createChooser(emailIntent, "Send the file using:"));
}
我測試了該文件,看看它是創造編輯正確(使用掃描儀打印),它似乎不是問題
嘗試檢查文件是否存在於sendAsMail:file.exists()中。您也可以嘗試使用myUri.toString()來記錄Uri內容以檢查它是否正常。 –
我測試了它,我得到的文件存在:I/System.out(30122):true 和uri是:file:///data/data/com.project.mishnayot/files/print.doc但它仍然沒有工作出於某種原因 –