2013-01-13 98 views
1

我試圖使用類似intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));的文件共享文件,該文件位於路徑data/data/my.package.name/folder/fileName,並且每當我嘗試使用Gmail應用程序發送文件時,都會收到錯誤消息。使用意向共享私人文件

我認爲這是由於文件的讀取權限,我的問題是如何給文件的意圖訪問,而不必將文件複製到另一個位置。

謝謝

+0

你能爲我們發佈你的logcat錯誤嗎? –

+0

logcat中沒有太多的東西。我可以打開Gmail,並將文件作爲附件添加,但是當我收到通知說附件失敗時。 我玩過代碼,會檢查一個日誌貓的錯誤。但我不認爲有一個。 – user557240

+0

您是否試圖從另一個應用程序數據路徑中打開除您自己以外的文件?這是違反Android的安全模式。 –

回答

2

試試這個可能對你有幫助。

您正試圖使用​​intents作爲電子郵件附件發送該文件。

文件爲空的原因是由於Android安全模型(data/data/my.package.name/folder/fileName目錄對您的應用程序是私有的),電子郵件應用程序無法訪問data/data/my.package.name/folder/fileName中的文件。

要在android中附加電子郵件文件,您必須先將文件保存在外部存儲器中。

+0

是的,我認爲這會是這樣的。那麼除了使用外部存儲器之外,沒有其他解決方案嗎? – user557240

+0

因爲我知道它只能附加電子郵件文件的方式.. –

+0

好的謝謝。在文檔中,我確實看到可以使用'openFileOutput(「filename」,MODE_WORLD_READABLE);'所以我只需要複製文件中的數據。然後刪除它。 謝謝 – user557240