我实现了在StackOverflow上搜索时看起来像其他任何内容的共享代码。
String pathToExportedFile = getPath();
// Export for share
Intent share = new Intent(Intent.ACTION_SEND);
share.setType("image/jpeg");
share.putExtra(Intent.EXTRA_STREAM,
Uri.parse("file:///" + pathToExportedFile));
share.putExtra(Intent.EXTRA_SUBJECT, "See Attachment");
model.activity.startActivity(Intent.createChooser(share, "Select a way to Share"));
然而,它仅适用于Facebook。当我选择gmail时,看起来它是附加的但是当我接收电子邮件时没有附件。当我通过Twitter做到这一点时,它说它无法找到附件。
附加的图像文件位于“sdcard \ DCIM \ Camera”
中请帮忙,
-mL
更新
我的文件路径很好,但看起来gmail是垃圾收集它?以下是一些选择的ADB日志:
02-01 16:36:46.720: D/Gmail(1896): Cached file:///mnt/sdcard/DCIM/Camera/1328132065637.jpg to /data/data/com.google.android.gm/cache/2012-02-01-16:36:46428133821.attachment
02-01 16:36:46.880: D/Gmail(1896): MailProvider.insert(): added local message 140
02-01 16:36:47.100: I/Gmail(1896): MainSyncRequestProto: lowestBkwdConvoId: 0, highestHandledServerOp: 554429, normalSync: true
02-01 16:36:49.900: I/Gmail(1896): MainSyncRequestProto: lowestBkwdConvoId: 0, highestHandledServerOp: 554462, normalSync: true
02-01 16:36:51.650: D/Gmail(1896): Cleaning up cached attachment: /data/data/com.google.android.gm/cache/2012-02-01-16:36:46428133821.attachment
02-01 16:36:51.650: D/Gmail(1896): Updating message 1392647555039793989. synced=true
02-01 16:36:52.230: I/Gmail(1896): MainSyncRequestProto: lowestBkwdConvoId: 0, highestHandledServerOp: 554477, normalSync: true
任何人都有线索?
答案 0 :(得分:0)
类似的问题:Trying to attach a file from SD Card to email
也遇到同样的问题 (...)
来自adb logcat:
V/DumbDumpersMain( 3972): sPhotoUri=file://sdcard/DumbDumpers/DumbDumper.jpg
I/ActivityManager( 56): Starting activity: Intent { action=android.intent.action.CHOOSER comp={android/com.android.internal.app.ChooserActivity} (has extras) }
I/ActivityManager( 56): Starting activity: Intent { action=android.intent.action.SEND type=jpeg/image flags=0x3000000 comp={com.google.android.gm/com.google.android.gm.ComposeActivityGmail} (has extras) }
I/ActivityManager( 56): Starting activity: Intent { action=android.intent.action.SEND type=jpeg/image flags=0x2800000 comp={com.google.android.gm/com.google.android.gm.ComposeActivity} (has extras) }
D/gmail-ls( 120): MailProvider.query: content://gmail-ls/labels/me@gmail.com(null, null)
D/Gmail ( 2507): URI FOUND:file://sdcard/DumbDumpers/DumbDumper.jpg
看起来电子邮件提供商附加了一个0长度的文件。当我检查文件系统时,文件就在那里并且正确。在尝试通过电子邮件发送之前,创建图像文件的代码已经完成。
(...)
<强>更新强>
我的道路应该是
file:///sdcard/DumbDumpers/DumbDumper.jpg
你需要额外的/
因为它指向根目录,即:
file://
+ /sdcard/DumbDumpers/DumbDumper.jpg
合并为
file:///sdcard/DumbDumpers/DumbDumper.jpg
在上面的代码片段中,您需要:
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+ sPhotoFileName));
我希望这会有所帮助。我花了很长时间来调试。
的问候,
芬雷