有时我们可以看到点击一些“共享”按钮后,会显示一个可共享方式列表。该列表似乎是动态生成的,而不是硬编码。
例如,我在手机上安装了SpringPad,一些应用程序的共享功能可以通过SpringPad共享内容,但是怎么知道我有SpringPad?
如何实现这样的功能?感谢。
答案 0 :(得分:8)
以下是我的Android应用BBC新闻的实际代码。它共享页面的URL。如果用户安装了Facebook或Twitter应用程序,他们将有机会分享这些服务以及电子邮件等。
final Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, pageUrl);
try {
startActivity(Intent.createChooser(intent, "Select an action"));
} catch (android.content.ActivityNotFoundException ex) {
// (handle error)
}
答案 1 :(得分:4)
如果您要在此列表中添加应用程序,则需要在应用程序的AndroidManifest.xml中声明<intent-filter>
,并在onCreate()
中的目标活动中声明您必须处理此意图。
Example(我从电子邮件应用中获取并进行了一些编辑)。
Docs about Intents and Intent Filters
关于将intent-filter作为AndroidManifest
的元素例如,实现请参阅source of Android Email application(文件AndroidManifest.xml和src / com / android / email / activity / MessageCompose.java(在onCreate()中)。)