如何使用ShareCompat.IntentBuilder启动活动

时间:2012-06-08 04:44:11

标签: android android-intent android-appcompat

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

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); 

2 个答案:

答案 0 :(得分:16)

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

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

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

Blog post on ShareCompat.IntentBuilder and sharing intents

答案 1 :(得分:8)

好笑,我只是弄明白......给出的例子是假设创建一个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");