【发布时间】:2011-06-29 08:33:41
【问题描述】:
我正在尝试向我的 Android 应用程序添加电子邮件功能。我实际上要做的是使用 ACTION_SEND 意图发送一个包含表示某些应用程序数据的 json 字符串的文件。问题是在我的设备上,一个带有 Froyo 的 HTC Desire,Gmail 发送实际的电子邮件,而不是附件,即使我在 Gmail 应用程序启动时看到附件作为附件。但是,在模拟器上,使用默认的电子邮件应用程序,这工作得很好。如果我使用 ASTRO 文件管理器等应用程序直接从 SD 卡发送附件并使用默认建议的 mime 类型,这也适用。 有人遇到过类似的事情吗? 我的代码如下所示:
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 类型,例如具有相同结果的 application/json 或 text/plain。
【问题讨论】:
-
fileWithPath等于什么?它是硬编码的还是动态生成的?如果硬编码并且在 SDCard 上,那么对应 SDCard 根路径的部分在不同设备上可能会有所不同。 -
感谢 Arhimed 的建议,确实 sdcard 部分被硬编码为 /mnt/sdcard/sa 之类的东西,这将是 sdcard 上我想从中读取文件的文件夹以及我之前保存它的位置发送附件。但是,我使用 Astro 文件管理器进行了检查,文件被写入该位置,并且该位置在我的设备上指定。顺便说一句,有没有办法以编程方式找出 sdcard 安装在设备上的路径?
标签: android