编写SQLite语句以检索所有联系人信息

时间:2014-10-28 05:47:12

标签: android android-sqlite

我需要编写一个sqlite语句来检索HAS_PHONE_NUMBER表中的所有_ID列和Contacts(所有电话联系人所在的位置)。

我希望它看起来像下面这样:

是否喜欢Select HAS_PHONE_NUMBER, _ID from Contacts

我实际上需要java代码,我可以从android电话簿中获取记录(通过上面的SQLite语句)并将结果保存在数组或列表中

2 个答案:

答案 0 :(得分:0)

这样:

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}, null);
        while (pCur.moveToNext()) {
        // Do something with phones
        } 
        pCur.close();
    }

答案 1 :(得分:0)

您可以通过以下方法执行此操作: -

    ArrayList<String> id=new ArrayList<String>();
    Cursor cursor = contentResolver.query(ContactsContract.Contacts.CONTENT_URI, null,null, null, null);

    if (cursor.getCount() > 0) {

        while (cursor.moveToNext()) {


            int hasPhoneNumber = Integer.parseInt(cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)));

            if (hasPhoneNumber > 0) {

           String contact_id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
           id.add(contact_id);


            }
        }
    }
              cursor.close();

并且不要忘记提及您的清单中的阅读联系人权限