首页 > 解决方案 > 与图像预览数据共享表共享 URL

问题描述

为了尝试使用原生 Android 共享表从我们的应用程序共享数据,我们一直在关注此文档:

https://developer.android.com/training/sharing/send

这给了我们以下示例:

来自 Google 文档的描述

从那以后,我们一直在定义我们自己的共享版本,在原生 Android 上看起来像这样:

在此处输入图像描述

然而,到目前为止,我们似乎还没有成功让 Android 正确显示共享表。我们尝试了以下代码,我附上了每个代码块的截图,以便您可以比较需求:

sendIntent.setAction(Intent.ACTION_SEND);

if (event != null && event.getTitle() != null && collection.getTitle() != null) {
    sendIntent.putExtra(Intent.EXTRA_TITLE, event.getTitle() + " - " + collection.getTitle());
}

sendIntent.putExtra(Intent.EXTRA_TEXT, collection.getShareUrl());

File thumbFile = DCPhotoUtils.captureView(rootView, R.id.shareThumbnailLayout);
Uri uriToImage = DCPhotoUtils.getUri(getContext(), thumbFile);
sendIntent.putExtra(Intent.EXTRA_STREAM, uriToImage);
sendIntent.setDataAndType(uriToImage, "image/*");
sendIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

startActivity(Intent.createChooser(sendIntent, null));

结果只是显示了一个想象:

在此处输入图像描述

然后我们尝试了以下方法:

Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.setType("image/*");
if (event != null && event.getTitle() != null && collection.getTitle() != null) {
    sendIntent.putExtra(Intent.EXTRA_TITLE, event.getTitle() + " - " + collection.getTitle());
}

sendIntent.putExtra(Intent.EXTRA_TEXT, collection.getShareUrl());

File thumbFile = DCPhotoUtils.captureView(rootView, R.id.shareThumbnailLayout);
Uri uriToImage = DCPhotoUtils.getUri(getContext(), thumbFile);
sendIntent.setData(uriToImage);
sendIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

startActivity(Intent.createChooser(sendIntent, null));

然后导致......什么都没有显示哈哈:

在此处输入图像描述

最后我们尝试了第三种也是最后一种方法:

Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.setType("image/*");
if (event != null && event.getTitle() != null && collection.getTitle() != null) {
    sendIntent.putExtra(Intent.EXTRA_TITLE, event.getTitle() + " - " + collection.getTitle());
}

sendIntent.putExtra(Intent.EXTRA_TEXT, collection.getShareUrl());

startActivity(Intent.createChooser(sendIntent, null));

这至少为我们提供了链接,但没有链接预览缩略图:

在此处输入图像描述

所以我们想知道我们做错了什么,我们无法获得谷歌文档中显示的“完整”预期结果?

标签: androidandroid-intent

解决方案


我在这个问题上做了很多工作。最后,我做到了。你应该尝试你的第三个解决方案并添加这个命令shareIntent.setClipData(ClipData.newRawUri("", yourImageUri)); 它非常适合我


推荐阅读