我見過幾個例子,但仍然不明白爲什麼,當我編輯郵件時,我看到附加的.xml文件,但是當我收到它沒有附件!Android發送xml文件不發送附件
這裏是我的代碼
File f = new File("data/data/xxx/files/xxx.xml");
Boolean b1 = f.exists();
Boolean b2 = f.canRead();
if (b1 && b2) {
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("text/plain");
sendIntent.putExtra(Intent.EXTRA_EMAIL, "");
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" +
f.getAbsolutePath()));
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "XXX");
sendIntent.putExtra(Intent.EXTRA_TEXT, R.string.mail_body);
startActivity(Intent.createChooser(sendIntent, "Email:"));
} else {
...
啊,只有一個細節......當我選擇該應用發送沒有主題或正文中,即使我寫putExtra(Intent.EXTRA_SUBJECT)和putExtra( Intent.EXTRA_TEXT),但這是一個細節...
編輯:我只是打擊了我的意圖:它表示「未緩存」的值的流,如何解決它?
它實際上是正確的道路。而且當我創建文件時,我使用了FileOutputStream fileOS = c.openFileOutput(FILE_NAME,Context.MODE_WORLD_READABLE);我相信,給其他應用程序讀取我的應用程序數據的權利,是不是? – Michele
@Michele:「它實際上是正確的道路」 - 並非針對所有設備和所有用戶。 「我相信,給別人的應用程序讀取我的應用程序數據的權利,是不是?」 - 這應該。你的'Uri'也是格式不正確的,因爲你硬編碼了一個路徑,然後轉過身來搞亂了字符串連接。使用'getFileStreamPath(FILE_NAME)'獲取'File',然後使用'Uri.fromFile()'可靠地生成一個指向這個文件的'Uri'。您最好使用'FileProvider'服務,因爲您可以將對此文件的讀取訪問權限限制在此'startActivity()'調用中,而不是讓任何人訪問該文件。 – CommonsWare
是的,這似乎對我好,我會嘗試這種方式:) – Michele