Получение контактных данных телефонной книги в Android - PullRequest
0 голосов
/ 01 сентября 2011

Я делаю приложение для загрузки телефонной книги устройства Android на стороне сервера. Я могу получить имена в телефонной книге, но не могу получить контактные номера соответствующих имен.

Я использую People.NUMBER метод для получения номера контакта.

Ответы [ 2 ]

0 голосов
/ 01 сентября 2011

используйте этот код.этот код сохраняет имя и номер Contant в Arralist.

ArrayList<HashMap<String,String>> contactData=new ArrayList<HashMap<String,String>>();
ContentResolver cr = getContentResolver();
         Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null, null, null, null);
         while (cursor.moveToNext()) {
             try{
             String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); 
             String name=cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
             String hasPhone = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); 
             if (Integer.parseInt(cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
                 Cursor phones = getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ contactId, null, null);
                 while (phones.moveToNext()) { 
                     String phoneNumber = phones.getString(phones.getColumnIndex( ContactsContract.CommonDataKinds.Phone.NUMBER));
                     HashMap<String,String> map=new HashMap<String,String>();
                     map.put("name", name);
                     map.put("number", phoneNumber);
                     contactData.add(map);
                 } 
                 phones.close(); 
             }
         }catch(Exception e){}
         }

Используйте список contactData , как вам нужно.

...