2011-02-17 32 views
0

我正在嘗試向我的Android應用程序添加電子郵件功能。我試圖做的實際上是通過使用ACTION_SEND意圖發送包含代表某些應用程序數據的json字符串的文件。問題在於,在我的設備上,帶有Froyo的HTC Desire,Gmail會發送實際的電子郵件,但不會發送附件,即使在Gmail應用程序以附件形式啓動時,我會看到附件。但是,在模擬器上,使用默認的電子郵件應用程序,這工作得很好。如果我正在使用應用程序(如ASTRO文件管理器)直接從SD卡發送附件並使用它的默認建議MIME類型,這也適用。 任何人都遇到過類似的事情? 我的代碼看起來是這樣的:Gmail不會從Android上的應用程序發送附件

Intent sendIntent = new Intent(Intent.ACTION_SEND); 
sendIntent.setType("application/sal"); 
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "shopping list"); 
Log.d(TAG, "attachment file: " + Uri.parse("file:/" + fileWithPath)); 
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:/" + fileWithPath)); 

我已經嘗試了多種MIME類型也,如應用程序/ JSON或純文本/使用相同的結果。

+0

`fileWithPath`等於什麼?它是硬編碼還是即時生成?如果硬編碼並位於SDCard上,則對應於SDCard根路徑的部分可能在不同的設備上有所不同。 – 2011-02-17 19:56:27

回答

1

顯然,在Android版的Gmail上以URI://開頭的文件存在一些問題,所以我找到了一些有關如何處理附件和文件的建議,這些附件和文件表示應用程序內部提供程序訪問應該使用文件內容。在OI FileManager herehere中可以找到實現類似功能的示例。我查看了前面提到的源代碼並試圖實現我自己的內容提供者來訪問我要附加的文件,並且它工作正常。 我希望這些信息對可能嘗試此操作的其他人有幫助。

相關問題