Android 与主题共享 E-Mail/Whatsapp
Android Sharing with Subject E-Mail/Whatsapp
我正在使用 android 本机共享代码:
Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_TEXT, "I like to share with you some stuff.");
intent.putExtra(Intent.EXTRA_SUBJECT, "I like to share with you.");
intent.setType(CONTENT_TYPE_TEXT);
startActivity(Intent.createChooser(intent, "Share");
当我使用电子邮件作为分享渠道时,我得到了我想要的:
Subject: I like to share with you.
Text: I like to share with you some stuff.
当我使用 WhatsApp 作为分享渠道时,我收到以下文本:
I like to share with you.
I like to share with you some stuff.
与 Whatsapp 分享时我期望什么:
I like to share with you some stuff.
有没有option/flag表示分享频道打压主题,如果分享频道基本不支持某个主题。
例如电子邮件支持主题 -> 使用额外提供的意图。
WhatsApp 不支持主题 -> 不要额外使用提供的意图。
使用 PackageManager
class 的 queryIntentActivities()
方法,您可以根据包名称设置 intent extras。
有关详细信息,请查看此 link:How to filter specific apps for ACTION_SEND intent (and set a different text for each app)
使用下面的代码(考虑到我们在 activity 中使用该功能),如果选择的应用程序是电子邮件,它将有一个主题,否则主题部分将无法用于其他应用程序,例如作为信使、短信或文本。 Body (setText) 将以相同的方式对所有应用可用。
ShareCompat.IntentBuilder.from(this)
.setSubject("I like to share with you.")
.setChooserTitle("Share")
.setType("text/plain")
.setText("I like to share with you some stuff.")
.startChooser()
我正在使用 android 本机共享代码:
Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_TEXT, "I like to share with you some stuff.");
intent.putExtra(Intent.EXTRA_SUBJECT, "I like to share with you.");
intent.setType(CONTENT_TYPE_TEXT);
startActivity(Intent.createChooser(intent, "Share");
当我使用电子邮件作为分享渠道时,我得到了我想要的:
Subject: I like to share with you.
Text: I like to share with you some stuff.
当我使用 WhatsApp 作为分享渠道时,我收到以下文本:
I like to share with you.
I like to share with you some stuff.
与 Whatsapp 分享时我期望什么:
I like to share with you some stuff.
有没有option/flag表示分享频道打压主题,如果分享频道基本不支持某个主题。
例如电子邮件支持主题 -> 使用额外提供的意图。 WhatsApp 不支持主题 -> 不要额外使用提供的意图。
使用 PackageManager
class 的 queryIntentActivities()
方法,您可以根据包名称设置 intent extras。
有关详细信息,请查看此 link:How to filter specific apps for ACTION_SEND intent (and set a different text for each app)
使用下面的代码(考虑到我们在 activity 中使用该功能),如果选择的应用程序是电子邮件,它将有一个主题,否则主题部分将无法用于其他应用程序,例如作为信使、短信或文本。 Body (setText) 将以相同的方式对所有应用可用。
ShareCompat.IntentBuilder.from(this)
.setSubject("I like to share with you.")
.setChooserTitle("Share")
.setType("text/plain")
.setText("I like to share with you some stuff.")
.startChooser()