我正在尝试通过直接分享从我的应用分享链接。共享对话框必须如下图所示,其中包含来自消息应用程序的最常用联系人,例如WhatsApp联系人。
这是我用来共享链接的Intent
结构:
Intent shareIntent = ShareCompat.IntentBuilder
.from(getActivity())
.setType("text/plain")
.setText(sTitle+ "\n" + urlPost)
.getIntent();
if (shareIntent.resolveActivity(
getActivity().getPackageManager()) != null)
startActivity(shareIntent);
这就是我的应用显示的内容:
知道如何实现这个目标吗?
答案 0 :(得分:5)
您应该使用.createChooserIntent()
代替.getIntent()
答案 1 :(得分:0)
如下面的代码,您可以使用Intent.createChooser
Intent sharingIntent = new Intent(Intent.ACTION_SEND);
Uri screenshotUri = Uri.parse("file://" + filePath);
sharingIntent.setType("image/png");
sharingIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri);
startActivity(Intent.createChooser(sharingIntent, "Share image using"));
答案 2 :(得分:0)
您应该使用
.createChooserIntent()
代替.getIntent()
文档:这使用ACTION_CHOOSER
意图,显示
活动选择器,允许用户在继续之前选择他们想要的内容。当您尝试使用多个可能的匹配项启动活动时,这可以用作系统显示的标准活动选择器的替代方法,但行为存在以下差异:
- 您可以指定将出现在活动选择器中的标题。
- 用户无法选择将其中一个匹配活动作为首选活动,并且所有可能的活动都将是 即使其中一个当前标记为,也始终显示 首选活动。
当用户自然期望时,应该使用此操作 选择一项活动以继续。一个例子,如果不使用 当用户点击“mailto:”链接时。他们很自然 期望直接转到他们的邮件应用程序,所以startActivity()应该是 直接调用:它将启动当前首选应用程序,或 建立一个对话框,允许用户选择要使用的应用程序,也可以选择 标记为首选。
相反,如果用户正在选择菜单项来发送图片 他们正在向别人看,他们有很多不同的东西 可能想要做到这一点:通过电子邮件发送,上传到 Web服务等。在这种情况下,应使用CHOOSER操作 总是向用户呈现他们可以做的事情的列表,用 来电者给出的好标题,例如“发送照片:”。