Wil*_*ing 5 android android-intent android-resources
我使用以下代码来共享图像:
Uri imguri=Uri.parse("android.resource://PackageName/drawable/"+ R.drawable.img);
Intent intent=new Intent(Intent.ACTION_SEND);
intent.setType("image/png");
intent.putExtra(Intent.EXTRA_STREAM,imguri);
Intent ch=Intent.createChooser(intent,"Send image");
startActivity(ch);
Run Code Online (Sandbox Code Playgroud)
文件已发送(例如使用 GMAIL),但问题是没有扩展名。它被简单地命名为 2130837559。
有没有办法获得真实姓名(img)和扩展名(png)?
在某种程度上,这取决于电子邮件客户端,而不是您。
部分原因是您的代码不发送真实姓名或扩展名。R.drawable.img是一个int,很可能2130837559是十进制的。如果您查看Uri要发送的文件,您将看不到文件名或文件扩展名。
让 Gmail 根据您的文件名和扩展名进行思考的唯一希望就是拥有一个Uri包含这些值的文件。解决方案包括:
将资源复制到外部存储上的文件并使用file:// Uri(不推荐)
将资源复制到内部存储上的文件并使用FileProvider为您提供content:// Uri
使用myStreamProvider直接从原始资源中提供值,并设置name为您生成的Uri文件名和扩展名(注意:这需要您将 PNG 文件作为原始资源,而不是作为可绘制资源)
| 归档时间: |
|
| 查看次数: |
798 次 |
| 最近记录: |