如何使用共享意图分享整个安卓应用程序

56

我以前使用过分享类型的意图,例如:

Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("plain/text");
intent.putExtra(Intent.EXTRA_EMAIL, new String[] { "---" });
intent.putExtra(Intent.EXTRA_SUBJECT, "---");
startActivity(Intent.createChooser(intent, "Contact Us!"));

然而,这基本上与电子邮件/短信和其他文本或文档类型的应用程序共享。如何做到同样的事情,但包括像Facebook、Twitter和Google Plus这样的社交分享(这些是重要的)。我想分享的是该应用程序,其中文本显示:“嘿,下载此链接以查看应用程序!”(或类似的内容)。

7个回答

146

要添加Facebook、Twitter等分享选项,用户只需安装这些应用程序。其他应用程序会告诉系统它们可以处理什么类型的Intent

然后基本的ACTION_SEND意图就会被捕获。

Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT,
    "Hey check out my app at: https://play.google.com/store/apps/details?id=" + BuildConfig.APPLICATION_ID);
sendIntent.setType("text/plain");
startActivity(sendIntent);

来源


非常好,看起来只要在意图中包含文本(而不是空白文本正文),它就会添加更多的社交选项? - TheLettuceMaster
不,据我所知,这是由“ACTION_SEND”和用户拥有可以处理“ACTION_SEND”的应用程序的组合产生的。尝试使用空白文本(即不要使用“putExtra(..)”),然后让我知道:D - ataulm
1
如果您看到我的问题,在那个例子中,我使用了ACTION_SEND但没有EXTRA_TEXT,只有电子邮件客户端、短信/彩信客户端、Google Drive或Evernote在我的手机上出现。虽然我指定了EXTRA_EMAIL,所以可能是这个原因? - TheLettuceMaster

19
如果您应用此代码,则它看起来像下面的图片。

Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, "My application name");
intent.putExtra(Intent.EXTRA_TEXT, "This is my text");
startActivity(Intent.createChooser(intent, "choose one"));

在这里输入图片描述

=====================================================================

如果您应用此代码,则会显示如下图像

Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("text/plain");
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
startActivity(sendIntent);

在这里输入图像描述


7
您可以通过使用共享意图来实现这一点。
            Intent shareIntent = new Intent(Intent.ACTION_SEND);
            shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            shareIntent.setType("text/plain");
            shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Hey, download this app!");
            startActivity(shareIntent);     

您可以将此意图放在onclick中或在任何需要的地方使用。

我认为这回答了您的问题 =)


3
在 Kotlin 中,我们可以做到:
 private fun share(messageToShare: String, appUrl: String) {
    val intent = Intent(Intent.ACTION_SEND)
    intent.type = "text/plain"
    intent.putExtra(Intent.EXTRA_TEXT, messageToShare + appUrl)
    startActivity(Intent(intent))
}

2
您可以在分享应用程序时添加标题、主题和正文:
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
                sharingIntent.setType("text/plain");
                sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "My App Name");
                sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, getResources().getString(R.string.share_app_text));
                startActivity(Intent.createChooser(sharingIntent, "Share app via"));

2
Intent.EXTRA_TEXT参数中分享Google Play的链接。

1
尝试这个,它对我很有效:

try this its working fine for me :

 Intent intent = new Intent();
    intent.setAction(Intent.ACTION_SEND);
    intent.putExtra(Intent.EXTRA_TEXT,"I suggest this app for you : https://play.google.com/store/apps/details?id=com.android.chrome");
    intent.setType("text/plain");
    startActivity(intent);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接