發送文件別的之前,其實我已經通過關於在Android上發送附件多個線程讀取。這就是說,我沒有找到解決我的問題的辦法。如何從Android應用
我的應用程序比較簡單,用戶類型的數字,它們會保存到「values.csv」使用openFileOutput(文件名,Context.MODE_APPEND);.
現在,這裏我使用的文件附加到電子郵件,然後發送(我是從其他文件的一個線程得到它。)
private void sendEmail(String email) {
File file = getFileStreamPath(filename);
Uri path = Uri.fromFile(file);
Intent intent = new Intent(android.content.Intent.ACTION_SEND);
intent.setType("application/octet-stream");
intent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Test");
String to[] = { email };
intent.putExtra(Intent.EXTRA_EMAIL, to);
intent.putExtra(Intent.EXTRA_TEXT, "Testing...");
intent.putExtra(Intent.EXTRA_STREAM, path);
startActivityForResult(Intent.createChooser(intent, "Send mail..."),
1222);
}
這將打開我的電子郵件客戶端,它執行代碼一切權利,除了附加的文件,顯示我Toast通知說:「文件不存在。」
我錯過了什麼嗎?我已經添加的權限讀取和寫入外部存儲的方式。
任何和所有的幫助將不勝感激。
編輯:我可以使用DDMS中的文件資源管理器模塊,並導航到/data/data/com.example.myapp/files/,我的values.csv所在的位置,並將其複製到我的計算機,以便文件確實存在。必須是我的代碼有問題。
恐怕郵件應用無法讀取你的文件,你有沒有試圖改變在openFileOutput的模式MODE_WORLD_READABLE? – 2014-10-22 02:56:37
好吧,它說,它已被棄用在API 17,但它似乎工作,現在郵件可以閱讀併發送它。但是,通過將其更改爲MODE_WORLD_READABLE,它失去了APPEND質量,這非常重要......有什麼辦法可以保持兩者? – iVikD 2014-10-22 03:01:00
是的,其實這不是一個好的舉措,因爲一個安全漏洞,但它導致我的答案,請等待我會爲你寫一個答案:) – 2014-10-22 03:02:00