0

ShareActionProvider 为设备上的每个兼容应用程序提供共享。我想指定我希望允许共享的应用程序,例如只有 twitter 和 gmail。

我该怎么做?

4

2 回答 2

1

谷歌不建议你分享到特定的应用程序,因为有各种不同的 Twitter 客户端——最好让人们选择他们想要分享的地方。

但是,以下代码将在按下按钮时向 twitter 发送消息“hello twitter”。

String message = "hello Twitter";

try {
    //try to open the official twitter app
    Intent sharingIntent = new Intent(Intent.ACTION_SEND);
    sharingIntent.setType("text/plain");
    sharingIntent.putExtra(
            android.content.Intent.EXTRA_SUBJECT, "Subject");
    sharingIntent.putExtra(Intent.EXTRA_TEXT, message);
    sharingIntent.setPackage("com.twitter.android");
    startActivity(sharingIntent);

} catch (Exception e) {
    //fallback on opening an internet browser
    Log.e("Danielle", "exception=" + e.toString());
    Intent i = new Intent();
    i.putExtra(Intent.EXTRA_TEXT, message);
    i.setAction(Intent.ACTION_VIEW);
    i.setData(Uri
            .parse("https://mobile.twitter.com/compose/tweet"));
    startActivity(i);
}

希望有帮助。

于 2014-01-23T17:22:30.150 回答
0

如果您只使用弹出窗口没问题,dacoinminster 在这个问题如何过滤特定应用程序的 ACTION_SEND 意图(并为每个应用程序设置不同的文本)中的答案就可以了。

但是,如果您特别希望它成为 actionprovider 下拉列表,我也没有找到此解决方案。

于 2014-03-07T01:01:26.613 回答