如何仅从谷歌联系人中选择带有电话号码的联系人(而不是Facebook等)?

6
我需要修复我一款老应用程序中的一个错误。其中一个问题是如何选择联系人。以下是我需要的内容:
  1. 联系人必须来自“正常”的谷歌联系人列表,即不想从Facebook或类似网站获取任何联系人。
  2. 联系人必须至少有一个电话号码。
  3. 联系人必须来自旧的android.provider.Contacts提供程序。
  4. 如果我可以使用Intent来获取联系人URI而不必自己创建选择列表等,则这是一个奖励。
听起来很简单,但我真的很困扰。这是我正在尝试的内容:
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Intent intent = new Intent(Intent.ACTION_PICK, Contacts.People.CONTENT_URI);
    startActivityForResult(intent, PICK_CONTACT_REQUEST);
}

这个方法还可以。我仍然看到没有电话号码的联系人,但我可以接受这种情况。更糟糕的是,我在列表中仍然看到Facebook联系人!这似乎与在Froyo API for the deprecated Contacts content provider找到的以下引用相矛盾:

这些API已被ContactsContract取代。新版API允许访问多个帐户并支持类似联系人的聚合。这些API仍然有效,但只会返回创建的第一个Google帐户的数据,这符合原始行为。

这听起来就像我想要的,但遗憾的是,我没有得到。

最后,这是我希望有人能回答的具体问题:

  1. 使用android.provider.Contacts内容提供程序时,为什么我会看到Facebook联系人?
  2. 如果这不起作用,我还能以其他方式使用户选择带有电话号码的Google联系人吗?

非常感谢。 Gustav


你想出解决方案了吗? - Anand Sainath
1个回答

0
我遇到了类似的问题,这至少可以给你提供带有电话号码的联系方式(包括Facebook)...
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE);
startActivityForResult(intent, PICK_CONTACT_REQUEST);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接