如何从谷歌联系人(而不是Facebook等)中拨打电话号码?

时间:2010-09-26 12:20:22

标签: android

我需要修复我的旧应用中的错误。部分错误是我如何选择联系人。这就是我需要的:

  1. 联系人必须来自 '普通'谷歌联系人列表,即 我不想得到任何联系 来自facebook或类似。
  2. 联系人必须至少有一个电话号码。
  3. 联系人必须来自旧的android.provider.Contacts提供商。
  4. 如果我可以使用Intent来获取联系人URI而不必自己创建选择列表等,那么这是一个奖励。
  5. 听起来很简单,但我真的很挣扎。这就是我想要的:

    @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联系人?
    3. 非常感谢。 古斯塔夫

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,这至少会给你联系电话号码(包括facebook)......

Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE);
startActivityForResult(intent, PICK_CONTACT_REQUEST);