在android中加载google plus中特定的可见人

2024-03-19

我已经成功实施了google plus

列出人员活动

public class ListPeopleActivity extends Activity implements
    PlusClient.ConnectionCallbacks, PlusClient.OnPeopleLoadedListener,
    PlusClient.OnConnectionFailedListener, DialogInterface.OnCancelListener {

private static final String TAG = "ListPeopleActivity";

private static final String STATE_RESOLVING_ERROR = "resolving_error";

private static final int DIALOG_GET_GOOGLE_PLAY_SERVICES = 1;

private static final int REQUEST_CODE_SIGN_IN = 1;
private static final int REQUEST_CODE_GET_GOOGLE_PLAY_SERVICES = 2;

private ArrayAdapter mListAdapter;
private ListView mPersonListView;
private ArrayList<String> mListItems;
private PlusClient mPlusClient;
private boolean mResolvingError;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.person_list_activity);

    mPlusClient = new PlusClient.Builder(this, this, this)
            .setVisibleActivities(MomentUtil.VISIBLE_ACTIVITIES).build();

    mListItems = new ArrayList<String>();
    mListAdapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, mListItems);
    mPersonListView = (ListView) findViewById(R.id.person_list);
    mResolvingError = savedInstanceState != null
            && savedInstanceState.getBoolean(STATE_RESOLVING_ERROR, false);

    int available = GooglePlayServicesUtil
            .isGooglePlayServicesAvailable(this);
    if (available != ConnectionResult.SUCCESS) {
        showDialog(DIALOG_GET_GOOGLE_PLAY_SERVICES);
    }
}

@Override
protected Dialog onCreateDialog(int id) {
    if (id != DIALOG_GET_GOOGLE_PLAY_SERVICES) {
        return super.onCreateDialog(id);
    }

    int available = GooglePlayServicesUtil
            .isGooglePlayServicesAvailable(this);
    if (available == ConnectionResult.SUCCESS) {
        return null;
    }
    if (GooglePlayServicesUtil.isUserRecoverableError(available)) {
        return GooglePlayServicesUtil.getErrorDialog(available, this,
                REQUEST_CODE_GET_GOOGLE_PLAY_SERVICES, this);
    }
    return new AlertDialog.Builder(this)
            .setMessage(R.string.plus_generic_error).setCancelable(true)
            .setOnCancelListener(this).create();
}

@Override
protected void onStart() {
    super.onStart();
    mPlusClient.connect();
}

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putBoolean(STATE_RESOLVING_ERROR, mResolvingError);
}

@Override
protected void onStop() {
    super.onStop();
    mPlusClient.disconnect();
}

@Override
public void onPeopleLoaded(ConnectionResult status,
        PersonBuffer personBuffer, String nextPageToken) {
    switch (status.getErrorCode()) {
    case ConnectionResult.SUCCESS:
        mListItems.clear();
        try {
            int count = personBuffer.getCount();
            Log.e("", "count : " + count);
            for (int i = 0; i < count; i++) {
                mListItems.add(personBuffer.get(i).getDisplayName());
                Log.e("", "" + personBuffer.get(i).getDisplayName() + " "
                        + personBuffer.get(i).getId() + " isPlusUser : "
                        + personBuffer.get(i).isPlusUser()
                        + " isVerified : "
                        + personBuffer.get(i).isVerified()
                        + " hasCircledByCount : "
                        + personBuffer.get(i).hasCircledByCount()
                        + " getObjectType : "
                        + personBuffer.get(i).getObjectType());
            }
        } finally {
            personBuffer.close();
        }

        mListAdapter.notifyDataSetChanged();
        break;

    case ConnectionResult.SIGN_IN_REQUIRED:
        mPlusClient.disconnect();
        mPlusClient.connect();
        break;

    default:
        Log.e(TAG, "Error when listing people: " + status);
        break;
    }
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    switch (requestCode) {
    case REQUEST_CODE_SIGN_IN:
        mResolvingError = false;
        handleResult(resultCode);
        break;
    case REQUEST_CODE_GET_GOOGLE_PLAY_SERVICES:
        handleResult(resultCode);
        break;
    }
}

private void handleResult(int resultCode) {
    if (resultCode == RESULT_OK) {
        // onActivityResult is called after onStart (but onStart is not
        // guaranteed to be called while signing in), so we should make
        // sure we're not already connecting before we call connect again.
        if (!mPlusClient.isConnecting() && !mPlusClient.isConnected()) {
            mPlusClient.connect();
        }
    } else {
        Log.e(TAG, "Unable to sign the user in.");
        finish();
    }
}

@Override
public void onConnected(Bundle connectionHint) {
    mPersonListView.setAdapter(mListAdapter);
    // mPlusClient.loadVisiblePeople(this, null);
    mPlusClient.loadPeople(this, "103193341800315457743");

}

@Override
public void onDisconnected() {
    mPersonListView.setAdapter(null);
    mPlusClient.connect();
}

@Override
public void onConnectionFailed(ConnectionResult result) {
    if (mResolvingError) {
        return;
    }

    mPersonListView.setAdapter(null);
    try {
        result.startResolutionForResult(this, REQUEST_CODE_SIGN_IN);
        mResolvingError = true;
    } catch (IntentSender.SendIntentException e) {
        // Get another pending intent to run.
        mPlusClient.connect();
    }
}

@Override
public void onCancel(DialogInterface dialogInterface) {
    Log.e(TAG, "Unable to sign the user in.");
    finish();
}

在上面的代码中mPlusClient.loadVisiblePeople(this, null);加载所有可见(圈内)人员..我想加载我圈子中的一个特定人员。和mPlusClient.loadPeople(this, "103193341800315457743");这可以加载特定的人,但我怎么知道它是否在我的圈子中......因为它每次都会返回,无论它是否在我的圈子中。

其实我想知道特定的人是否在我的圈子里。


try, mPlusClient.loadPerson(这, "103193341800315457743");

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在android中加载google plus中特定的可见人 的相关文章

随机推荐

  • Mongoid 在 ruby​​ 1.9.3 上失败

    所以我正在玩 mongo 的东西 创建了一个新的heroku应用程序 为其添加了一个mongolab选项 但是每个mongoid方法都失败了 我用谷歌搜索了一下 看起来这个问题在 1 9 3 之前的 ruby 中很常见 但我正在运行 1 9
  • 从文件夹中获取给定扩展名的第一个文件

    我需要获取具有以下内容的文件夹中的第一个文件 tar gz扩大 我想出了 FILE path to folder ls path to folder grep tar gz head 1 但我觉得它可以做得更简单 更优雅 有更好的解决方案吗
  • 在 D3.JS 中使用面积图启动过渡和动画

    我想让面积图在程序开始时从左到右 绘制 本身 我的图表中已经有一条线执行此操作 但是我无法使该线下方的区域正确设置动画 或者在页面首次启动时 绘制 自身 目前 这就是我所在地区的情况 var area d3 svg area x funct
  • 如何只为模态体放置滚动条?

    我有以下元素 div class modal div class modal dialog style max height 85 margin top 50px margin bottom 50px div class modal con
  • 新版本的 Minikube 不允许 Pod 使用自己的服务

    我有一个 Pod 偶尔需要通过自己的主机名来调用自己 我设置了一个部署 最终创建了 Pod 和一个服务 我可以使用集群中不同 Pod 的服务名称 但该 Pod 无法使用其主机名调用自身 这适用于 Minikube v0 17 1 和 Kub
  • 在实例变量中保存块

    我们如何声明一个全局 私有实例变量 来接受其中的块 我们是否需要综合它以及它对内存管理的影响是什么 我有一个从第三方方法收到的块 我想将其保存在实例变量中并在稍后阶段使用它 这是一个 无 ARC 示例 在后台完成一些工作后存储完成回调的块
  • 使用 INPUT 标签的 VALUE 属性(及其值)读取 HTML 表单的innerHTML

    我有一个html form与一些输入字段 而不是读取和发送值input字段由document ipForm userName value 我需要将整个 html 内容发送到 html 解析器并提取
  • StackPanel 逆序 - WPF

    我试图反转子项在 StackPanel 中出现的顺序 我希望能够将新的子项 在运行应用程序时 添加到列表的顶部而不是底部 我尝试过使用各种 XAML 代码 但没有任何效果 做到这一点最简单的方法是什么 Use stackPanel Chil
  • 在 Java 中声明 LinkedList

    当我们声明我们应该做的集合时 我总是学到 Interface ob new Class 如果我想使用例如 LinkedList 我会这样做List ob new LinkedList 但是我无法访问 LinkedList 中的所有方法 不是
  • 标准中关于指针比较的奇怪措辞

    6 5 8 6 http www open std org jtc1 sc22 wg14 www docs n1570 pdf 关于 gt 如果表达式 P 指向数组对象的一个 元素并且 表达式 Q 指向同一个数组对象的最后一个元素 指针表达
  • HTA 如何获取当前用户的用户名?

    我想获取当前用户的用户名 然后在我的应用程序名称中创建一个链接 该链接看起来像 http localhost id username I tried Dim objNetworkSet objNetwork CreateObject WSc
  • 如何使用 char 作为 switch-case 中的 case?

    如何在 switch case 中使用字符 我将收到用户输入的任何第一个字母 import javax swing public class SwitchCase public static void main String args St
  • 如果文本字段为空,则更改按钮元素的样式

    我想改变风格 postBtn if textfield是空的 就像 postBtn textfield value length 0 border color gray background color gray In html
  • 使用组件的 @ViewChild { read: ElementRef } 导致单元测试失败

    在我的组件中 我有一个如下所示的子组件
  • 关于您的项目所依赖的许可证的 Maven 报告[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个大型多模块项目 我想生成一份报告 显示该项目所依赖的所有内容的所有许可证 我查看了 tattl
  • 模拟正在测试的同一类中的私有方法

    我有一个名为的 Java 类 MyClass 我想用 JUnit 进行测试 公共方法 methodA 我想测试调用私有方法 methodB 在同一个类中确定要遵循哪个条件路径 我的目标是为不同路径编写 JUnit 测试methodA 还 m
  • 有没有什么方法可以安全地进行图像量化并且无需编组?

    我目前正在使用 Brendan Tompkins ImageQuantization dll http codebetter com blogs brendan tompkins archive 2007 06 14 gif image c
  • 哪些 CSS3 功能仍然需要供应商前缀?

    我记得最常见的需要前缀的功能是诸如flexbox border radius box shadow等等 但现在它们受到支持 随着越来越多的用户转向使用 Chrome 和 Firefox 等功能更强大的浏览器并放弃 IE 现在是否还有尚未完全
  • 从 VBA (MS Access) 解密 PGP 加密文件的最简单方法

    我需要编写代码从 FTP 位置获取 PGP 加密的文件并处理它们 这些文件将使用我的公钥进行加密 我还没有公钥 显然 我需要一个可以在 Microsoft Access 中使用的 PGP 库 您能推荐一款易于使用的吗 我正在寻找不需要大量
  • 在android中加载google plus中特定的可见人

    我已经成功实施了google plus 列出人员活动 public class ListPeopleActivity extends Activity implements PlusClient ConnectionCallbacks Pl