dac*_*cwe 5 android share image android-intent
我在我的应用程序中创建图像,并希望共享这些社交网络(Facebook),邮件应用程序(Gmail)和其他可以"接收"图像的应用程序.
问题的根源(我认为)是我不想使用外部存储作为我的图像的基础.我想要使用我的数据文件夹或我的缓存文件夹,因为这些都不需要任何访问权限.
我用来将我的图像写入文件的代码(我指定了MODE_WORLD_READABLE
以便其他应用程序可以读取它们):
FileOutputStream fos = null;
try {
fos = context.openFileOutput("image.jpg", Context.MODE_WORLD_READABLE);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
} finally {
if (fos != null)
fos.close();
}
Run Code Online (Sandbox Code Playgroud)
这是我分享图像的代码:
File internalFile = context.getFileStreamPath("image.jpg");
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(internalFile));
intent.setType("image/jpeg");
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
context.startActivity(Intent.createChooser(intent, "share"));
Run Code Online (Sandbox Code Playgroud)
这个解决方案非常简单,适用于像facebook这样的应用程序,但不适用于例如gmail的应用程序:
file:// attachment paths must point to file:///mnt/sdcard
Run Code Online (Sandbox Code Playgroud)
有一些"黑客"(见下文)让它与gmail一起工作,但是我让自己问自己是否有更好的方法来分享没有黑客的图像,我忽略了一些东西.所以,对于问题:
归档时间: |
|
查看次数: |
765 次 |
最近记录: |