Android 联系信息,包括 facebook 等联系人

Posted

技术标签:

【中文标题】Android 联系信息,包括 facebook 等联系人【英文标题】:Android contact info including facebook etc. contacts 【发布时间】:2011-08-31 15:37:54 【问题描述】:

我正在使用以下代码。在我的应用程序中,用户可以从联系人中进行选择以查看联系人信息(应用程序跳转到相应的联系人信息)。 这是代码的结果: 用户点击手机中数据的人:应用跳转到联系人信息 用户点击从 facebook 导入数据的人:如果这是应用程序的第一次运行,它会强制关闭。如果用户之前点击了手机中(手动添加)数据的人,则会显示他/她的联系信息。

ContentResolver cr = getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
if (cur.getCount() > 0) 

  while (cur.moveToNext()) 
  id_contact = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
                                    name_contact =     
  cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
  if (Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) 
  
    if (name_contact.equals(myArr2_cs[item]))
    
      Toast.makeText(getApplicationContext(), "NAME2: " + name_contact,   Toast.LENGTH_SHORT).show();
      Toast.makeText(getApplicationContext(), "ID2: " + id_contact, Toast.LENGTH_SHORT).show();
      if (Integer.parseInt(cur.getString(
       cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) 
       
         Cursor pCur = cr.query(
         ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, 
         ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?", new String[]id_contact, null);
         id_contact2 = id_contact;
        
     
   
 
Toast.makeText(getApplicationContext(), "id_contact: " + id_contact2, Toast.LENGTH_SHORT).show();
    Intent intent_contacts = new Intent(Intent.ACTION_VIEW, Uri.parse("content://contacts/people/" + id_contact2));
      startActivity(intent_contacts);
        

Here 我发现允许访问 facebook 联系人。这家伙还说“我通过 FB Graph api (http://graph.facebook.com/me/friends) 获取缓存所有联系人姓名/id 映射并将其用于 id 查找。”。这是什么意思?

如果我不能解决这个问题,我的程序看起来很糟糕。 500 个联系人出现在应用程序中,但应用程序仅在 40 个左右的情况下跳转到联系人信息。在过去的 460 个案例中,它不起作用。

【问题讨论】:

问题不是很清楚。您是显示来自 Androd Phone 联系人的联系人列表,还是来自 facebook 联系人的联系人列表? 【参考方案1】:

我设法解决了这个问题。原来查询只包括那些有电话号码的人,但我的名单包括所有人。这就是运行导致强制关闭和错误结果的原因。我必须用 HAS_PHONE_NUMBER 删除这两行,一切正常。

【讨论】:

以上是关于Android 联系信息,包括 facebook 等联系人的主要内容,如果未能解决你的问题,请参考以下文章

android 上的外部(例如 facebook)联系人照片

Android,如何获取 Facebook/Twitter/etc 联系人照片

获取与 facebook for android 同步的联系人照片

在 RawContacts 中找不到 Facebook 联系人

是否可以从通讯录中过滤掉 facebook、whatsapp 联系人?

如何在 android 中使用 facebook 复制 Url 获取 facebook 视频详细信息