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

Android 如何只从谷歌联系人(而不是facebook等)中选择有电话号码的联系人?,android,Android,我需要修复我的一个旧应用程序中的一个bug。问题的一部分是我如何选择联系人。以下是我需要的: 联系人必须来自 “普通”谷歌联系人列表,即。 我不想有任何联系 来自facebook或类似网站 联系人必须至少有一个电话号码 联系人必须来自旧的android.provider.Contactsprovider 如果我可以使用意图获取联系人URI,而不必自己创建选择列表等,那么这是一个额外的好处 听起来很简单,但我真的很挣扎。这就是我正在尝试的: @Override public void onCrea

我需要修复我的一个旧应用程序中的一个bug。问题的一部分是我如何选择联系人。以下是我需要的:

  • 联系人必须来自 “普通”谷歌联系人列表,即。 我不想有任何联系 来自facebook或类似网站
  • 联系人必须至少有一个电话号码
  • 联系人必须来自旧的
    android.provider.Contacts
    provider
  • 如果我可以使用意图获取联系人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联系人!这似乎与网站上的以下引用相矛盾:

    API已被ContactsContract取代。较新的API允许访问多个帐户,并支持聚合类似联系人。这些API继续工作,但只返回创建的第一个Google帐户的数据,该帐户符合原始行为

    这听起来正是我想要的,但唉,不是我得到的

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

  • 为什么我在使用android.provider.contacts内容提供商时会看到Facebook联系人
  • 如果这不起作用,我怎样才能让用户选择一个有电话号码的谷歌联系人
  • 非常感谢。
    古斯塔夫(Gustav)

    我也有类似的问题,这至少可以让你联系上电话号码(包括facebook)


    你想出解决办法了吗??
    Intent intent = new Intent(Intent.ACTION_PICK);
    intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE);
    startActivityForResult(intent, PICK_CONTACT_REQUEST);