【发布时间】:2013-10-06 10:30:10
【问题描述】:
我正在尝试共享缓存目录中的图像文件,我有完整的路径,但无法以附件的形式发送文件,代码是
File shareImage=Utils.getBitmapFile();
Log.d("Activity", "get final path in result"+shareImage.getAbsolutePath());
/*MimeTypeMap mime = MimeTypeMap.getSingleton();
String ext=shareImage.getName().substring(shareImage.getName().lastIndexOf(".")+1);
String type = mime.getMimeTypeFromExtension(ext);
shareIntent.setType(type);
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("image/*");
Uri shareImageUri = Uri.fromFile(shareImage);
Uri shareImageUri = Uri.fromParts("content", shareImage.getAbsolutePath(), null);//("content://"+shareImage.getAbsolutePath());
*/
Uri shareImageUri = Uri.fromFile(shareImage);
Log.d("Result ","uri is "+shareImageUri.toString());
shareIntent.putExtra(Intent.EXTRA_STREAM, shareImageUri);
startActivity(Intent.createChooser(shareIntent, "Share Results"));
上面注释的代码不起作用
发送邮件显示附件,但接收端没有附件, facebook分享也没有显示帖子中的图像
这是什么原因??
我已经看到以下 SO Links how-to-use-share-image-using-sharing-intent-to-share-images-in-android 和许多其他人,他们都无法解决问题
附:
1.目的是将屏幕截图保存在缓存目录中并从那里在线共享
2.是的,我有文件,我可以通过 DDMS 从设备中提取它并在系统上查看。
【问题讨论】:
-
缓存目录是您应用的私有目录。共享应用将无法访问该文件。
-
读取developer.android.com/guide/topics/data/…,保存应该共享的文件
-
如果你不想使用外部存储,你需要创建一个 ContentProvider 来访问你保存的文件(即使在缓存目录中也可以)
-
请参阅 SO 的 stackoverflow.com/questions/14864707/…,链接到 stephendnicholas.com/archives/974 以获取内容提供者,但这似乎不适用于 SO 帖子!!!
-
在android-developers.blogspot.in/2012/02/share-with-intents.html 找到了用于分享意图的 android 开发博客,解释了很多
标签: android android-intent share