与Android意图共享图像

Gui*_*lhE 3 email android share drawable android-intent


我试图通过这样的分享意图分享图像:

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);
Run Code Online (Sandbox Code Playgroud)

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

谢谢你的时间.

Com*_*are 5

首先,无法保证任何给定的其他应用程序都能够支持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));
Run Code Online (Sandbox Code Playgroud)

有:

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

一个android:resource://不是一个File,也许你是Uri通过转换为a File然后回到a 来弄乱你的Uri.