12

我正在尝试添加共享意图以发布到Google Plus,但似乎无法解决将新的ShareCompat.IntentBuilder(Android 支持库类)传递给该startActivity方法的问题。我开始使用这个例子。我的应用是使用 Android 2.2 平台编译的。是否有可能有另一种支持方式来启动 Activity 以启动共享意图。

IntentBuilder shareIntent = ShareCompat.IntentBuilder.from(MyActivity.this);                
shareIntent.setText(message);
shareIntent.setSubject(subject);

if (mFullFileName != null) {
    File imageFile = new File(mFullFileName);
    if (imageFile.exists()) {
        shareIntent.setStream(Uri.fromFile(imageFile));
        shareIntent.setType("image/jpeg");
    }
} else {
    shareIntent.setType("*.*");
}   
shareIntent.getIntent();
// doesn't compile only accepts Intent and not the Intentbuilder 
startActivity(shareIntent); 
4

3 回答 3

23

这是我的代码中的一个示例,但如果您想要一些参考资料,请点击文章的超链接。

public void shareText(String text) {
        String mimeType = "text/plain";
        String title = "Example title";

        Intent shareIntent =   ShareCompat.IntentBuilder.from(this)
                                                    .setType(mimeType)
                                                    .setText(text)
                                                    .getIntent();
        if (shareIntent.resolveActivity(getPackageManager()) != null){
            startActivity(shareIntent);
        }
    }

关于 ShareCompat.IntentBuilder 和共享意图的博客文章

于 2017-07-27T13:49:50.643 回答
9

有趣的是,我只是想通了...给出的示例是假设创建一个 Intent 而不是 IntentBuilder 对象.. 必须更改我的代码以链接对象创建。

Intent i = ShareCompat.IntentBuilder.from(MyActivity.this)
                       .setText(message)
                       .setSubject(subject)
                       .setStream(Uri.fromFile(imageFile))
                       .setType("image/jpeg")
                       .getIntent()
                       .setPackage("com.google.android.apps.plus");
于 2012-06-08T05:12:13.937 回答
5

ShareCompat.IntentBuilder.from(ActivityName.this)弃用,请使用 IntentBuilder 的构造函数,如下所示:

new ShareCompat
                .IntentBuilder(YourActivity.this)
                .setType("text/plain")
                .setChooserTitle("Share text with: ")
                .setText("Desired text to share")
                .startChooser();
于 2021-09-23T10:24:57.380 回答