无法从 Android 获取所有联系人

Posted

技术标签:

【中文标题】无法从 Android 获取所有联系人【英文标题】:Unable to fetch all the contacts from Android 【发布时间】:2015-05-23 13:06:35 【问题描述】:

我需要获取 android 设备上的所有联系人。但是当我使用contentResolver 查询时,我只得到新创建的联系人。即使设备上有多个联系人。下面是我用来获取联系人的查询。光标不会全部返回。

我还观察到一件事。如果我去编辑未获取的联系人,则获取该特定联系人。帮我找到所有的联系人。我错过了什么吗?

String[] projection = new String[]  Contacts.LOOKUP_KEY ;
            Cursor people = mContext.getContentResolver().query(Contacts.CONTENT_URI, projection, null, null, null);

【问题讨论】:

找到解决方案的运气..??我遇到了同样的问题。 【参考方案1】:

试试这个。

public class ContactActivity extends Activity 

Cursor cursor;
ArrayList<String> NameList=new ArrayList<String>();
ArrayList<String> PhoneList=new ArrayList<String>();


@Override
protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

            cursor = getContentResolver().query(Phone.CONTENT_URI, null, null, null, null);

    while (cursor.moveToNext()) 
        int nameIdx = cursor.getColumnIndex(Phone.DISPLAY_NAME);   
        int phoneNumberIdx = cursor.getColumnIndex(Phone.NUMBER);

        String name = cursor.getString(nameIdx);
        String phone = cursor.getString(phoneNumberIdx);    
        NameList.add(name);
        PhoneList.add(phone);

        System.out.println("Name is :"+name +" number is : "+phone);
        System.out.println("Name is :"+name +" number is : "+phone);
        System.out.println("Name is :"+name +" number is : "+phone);



    




【讨论】:

以上是关于无法从 Android 获取所有联系人的主要内容,如果未能解决你的问题,请参考以下文章

Android - 无法获取某些联系人的电话号码

从android中的指定组获取联系人

如何在 Android 中获取联系人的所有详细信息

如何使用 android 平台获取所有工作资料联系人

Android - 获取所有联系人列表时出错

如何从 Android 联系人中的联系人 ID 获取只读帐户名称