使用 Android 意图共享图像

2023-12-23


我正在尝试通过这样的共享意图来共享图像:

Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);

    sharingIntent.setType("image/png");
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, application.getString(R.string.app_name));
    sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT,application.getString(R.string.app_share_message));

    File image = new File(Uri.parse("android.resource://" + C.PROJECT_PATH + "/drawable/" + R.drawable.icon_to_share).toString());
        sharingIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(image));
        shareMe(sharingIntent);

共享意图正确触发,我选择 Gmail,一切都按预期运行,直到我按发送。我收到一条通知“无法显示附件”,并且电子邮件在没有它的情况下发送... 为什么?

谢谢你的时间。


首先,不能保证任何给定的其他应用程序都能够支持android:resource// Uri。您将具有更大的兼容性,可以在外部存储上共享文件或使用ContentProvider.

话虽如此,替换:

File image = new File(Uri.parse("android.resource://" + C.PROJECT_PATH + "/drawable/" + R.drawable.icon_to_share).toString());
    sharingIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(image));

with:

    sharingIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("android.resource://" + C.PROJECT_PATH + "/drawable/" + R.drawable.icon_to_share);

An android:resource://不是一个File,并且可能你正在搞乱你的Uri通过转换为File然后回到aUri.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Android 意图共享图像 的相关文章