2011-02-17 77 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中可以找到实现类似功能的示例。我查看了前面提到的源代码并试图实现我自己的内容提供者来访问我要附加的文件,并且它工作正常。 我希望这些信息对可能尝试此操作的其他人有帮助。

相关问题