获取显示的姓名,但不获取Android联系人列表中的号码

获取显示的姓名,但不获取Android联系人列表中的号码,android,Android,我想从Android联系人列表中获取数据。 我得到了显示器的名称,但没有号码。 我使用了以下代码: while(people.moveToNext()){ try{ int nameFieldColumnIndex = people.getColumnIndex(Phone.DISPLAY_NAME); String name = people.getString(nameFieldColumnIndex);

我想从Android联系人列表中获取数据。 我得到了显示器的名称,但没有号码。 我使用了以下代码:

while(people.moveToNext()){
            try{
                int nameFieldColumnIndex = people.getColumnIndex(Phone.DISPLAY_NAME);
                String name = people.getString(nameFieldColumnIndex);
                try{
                    int numberFieldColumnIndex = people.getColumnIndex(Phone.NORMALIZED_NUMBER);
                    String number = people.getString(numberFieldColumnIndex);
                    HashMap<String,String> contactMap=new HashMap<String, String>();
                    contactMap.put("name", name); // per la chiave image, inseriamo la risorsa dell immagine
                    contactMap.put("number",number); // per la chiave name,l'informazine sul nome
                    data.add(contactMap);  //aggiungiamo la mappa di valori alla sorgente dati
                }catch(IllegalStateException e){e.printStackTrace();}
但结果是一样的,我得到了显示的名字,但不是号码。 我读了一些有用的帖子,但没有完成。 建议

提前谢谢

我自己解决。 我需要编写一个单独的查询代码,以获取与每个联系人关联的号码:

ArrayList<HashMap<String, String>> data = new ArrayList<HashMap<String, String>>();

            if (cur.getCount() > 0) {
            while (cur.moveToNext()) {
                id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
                name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
                 if (Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 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()) {
                                number = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                                HashMap<String,String> contactMap=new HashMap<String, String>();
                                contactMap.put("name", name); // per la chiave image, inseriamo la risorsa dell immagine
                                contactMap.put("number",number); // per la chiave name,l'informazine sul nome
                                data.add(contactMap);  //aggiungiamo la mappa di valori alla sorgente dati
                            } 
                            pCur.close();
                        }
            }
            }

    }   
        cur.close();
ArrayList data=new ArrayList();
如果(cur.getCount()>0){
while(cur.moveToNext()){
id=cur.getString(cur.getColumnIndex(ContactsContract.Contacts.\u id));
name=cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_name));
if(Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)))>0{
if(Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)))>0{
游标pCur=cr.query(ContactsContract.commondatatypes.Phone.CONTENT_URI,null,ContactsContract.commondatatypes.Phone.CONTACT_ID+“=?”,新字符串[]{ID},null);
while(pCur.moveToNext()){
number=pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataTypes.Phone.number));
HashMap contactMap=新建HashMap();
contactMap.put(“name”,name);//每幅la chiave图像,inseriamo la risorsa dell immagine
contactMap.put(“number”,number);//根据la chiave名称,南加州l'informazine
data.add(contactMap);//aggiungiamo la mappa di valori alla sorgente dati
} 
pCur.close();
}
}
}
}   
cur.close();
ArrayList<HashMap<String, String>> data = new ArrayList<HashMap<String, String>>();

            if (cur.getCount() > 0) {
            while (cur.moveToNext()) {
                id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
                name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
                 if (Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 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()) {
                                number = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                                HashMap<String,String> contactMap=new HashMap<String, String>();
                                contactMap.put("name", name); // per la chiave image, inseriamo la risorsa dell immagine
                                contactMap.put("number",number); // per la chiave name,l'informazine sul nome
                                data.add(contactMap);  //aggiungiamo la mappa di valori alla sorgente dati
                            } 
                            pCur.close();
                        }
            }
            }

    }   
        cur.close();