如何强制Share Intent打开特定的应用程序?

Nul*_*ion 24 twitter android share android-intent

我喜欢分享意图,非常适合用图像和文本参数打开共享应用程序.

但现在我正在研究如何强制分享意图从列表中打开一个特定的应用程序,并给出共享意图的参数.

这是我的实际代码,它显示了手机上安装的共享应用列表.请问,有人可以告诉我应该添加什么代码以强制举例如官方Twitter应用程序?和官方的faccebok应用程序?

Intent sharingIntent = new Intent(Intent.ACTION_SEND);
Uri screenshotUri = Uri.parse("file:///sdcard/test.jpg");  
sharingIntent.setType("image/*");
sharingIntent.putExtra(Intent.EXTRA_TEXT, "body text");
sharingIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri);
startActivity(Intent.createChooser(sharingIntent, "Share image using"));
Run Code Online (Sandbox Code Playgroud)

谢谢

Xor*_*sat 38

对于Facebook

public void shareFacebook() {
        String fullUrl = "https://m.facebook.com/sharer.php?u=..";
        try {
            Intent sharingIntent = new Intent(Intent.ACTION_SEND);
            sharingIntent.setClassName("com.facebook.katana",
                    "com.facebook.katana.ShareLinkActivity");
            sharingIntent.putExtra(Intent.EXTRA_TEXT, "your title text");
            startActivity(sharingIntent);

        } catch (Exception e) {
            Intent i = new Intent(Intent.ACTION_VIEW);
            i.setData(Uri.parse(fullUrl));
            startActivity(i);

        }
    }
Run Code Online (Sandbox Code Playgroud)

对于Twitter.

public void shareTwitter() {
        String message = "Your message to post";
        try {
            Intent sharingIntent = new Intent(Intent.ACTION_SEND);
            sharingIntent.setClassName("com.twitter.android","com.twitter.android.PostActivity");
            sharingIntent.putExtra(Intent.EXTRA_TEXT, message);
            startActivity(sharingIntent);
        } catch (Exception e) {
            Log.e("In Exception", "Comes here");
            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);
        }
    }
Run Code Online (Sandbox Code Playgroud)

  • 它不再适用于Facebook (7认同)

Der*_*rzu 7

有一种更通用的方法,并不需要知道应用程序意图的完整包名称.

看这篇文章: 如何在Android中自定义共享意图?