2012-06-08 53 views
1

我试图添加共享意图发布到谷歌加似乎并不能化解传递新ShareCompat.IntentBuilder(支持Android库类)的问题向startActivity方法。我开始使用this example。我的应用程序是使用Android 2.2平台编译的。是否有另一种支持方式来启动活动来启动共享意图。如何用ShareCompat.IntentBuilder startActivity

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

笏是你所得到的错误?如果可能,放入logcat输出。 – havexz

+0

对不起..我的帖子并没有我第一次想到的那么准确..我给startActivity方法添加了一个注释块..它的编译问题似乎无法为我工作。 – user167698

回答

4

这是我的代码的一个例子,但如果你想要一些参考资料在超链接上点击一篇文章。

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

6

滑稽的,我只是理解了它......给被假设创建一个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"); 
+0

你可以接受你自己的答案......我删除了我的,以减少噪音。 – havexz

+0

感谢您的努力,以帮助.. :-) – user167698

+0

请注意,Uri.fromFile(imageFile)是不安全的,因为牛轧糖。 “在包域外传递file:// URIs可能会给接收器留下难以访问的路径。” https://developer.android.com/about/versions/nougat/android-7.0-changes.html#perm –