为什么PlusShare.Builder setRecipients方法不起作用?

时间:2013-11-22 21:13:12

标签: android google-plus google-play-services

根据google+ docs,我正在尝试仅为已定义的收件人发送帖子。

Intent sharePost = new PlusShare.Builder(this)
        .setType("text/plain")
        .setText(msg)
        .setRecipients(Array.asList(PlusShare.createPerson(id, name)))
        .setContentUrl(Uri.parse("http://www.google.com/"))
        .getIntent();

但是,当Google+应用程序打开时,收件人字段不包含私有定义的人员。我检查'id'和'name',但它们是正确的。

可能有人对此有所了解。非常感谢。

更新 这是具有当前意图的startActivityForResult之后的Google+应用的屏幕截图。朋友圈设置为共享目标。

enter image description here

基于Ian's advice

解决方案

使用带有两个参数的PlusShare.Builder(Activity& PlusClient)。但现在这个构造函数已被弃用,并且可能存在此问题的另一种解决方案。

2 个答案:

答案 0 :(得分:2)

当您从登录的应用程序共享时,通常只能预先填写收件人。如果您已在应用程序中实现了登录,请尝试使用PlusClient作为第二个参数的PlusShare.Builder构造函数。

答案 1 :(得分:0)

setRecipients method采用ArrayList,而不是Person。即使您在显示的代码中只有一个人,它也应该在数组列表中。

private ArrayList<Person> recipients;
recipients.add(PlusShare.createPerson(id, name));

Intent sharePost = new PlusShare.Builder(this)
        .setType("text/plain")
        .setText(msg)
        .setRecipients(recipients)
        .setContentUrl(Uri.parse("http://www.google.com/"))
        .getIntent();