Android People.Number и People.Number_key возвращают ноль - PullRequest
4 голосов
/ 27 июня 2010

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

       Cursor cursor = getContentResolver().query(People.CONTENT_URI, null, null, null,People.NAME + " ASC");
  startManagingCursor(cursor);
  cursor.moveToFirst();
  if(cursor.getCount() > 0){
  while(cursor.moveToNext()){
    int idCol = cursor.getColumnIndex(People._ID);
          int nameCol = cursor.getColumnIndex(People.NAME);
          int numCol = cursor.getColumnIndex(People.NUMBER_KEY);

          String name = cursor.getString(nameCol);
          String number = cursor.getString(numCol);
    //mDbHelper.addContact(managedCursor.getString(1),managedCursor.getString(2));
    Log.v("contact.add",name+" - "+number);
  }

Есть идеи?

Примерно через 3 часа я понял это:

   ContentResolver cr = getContentResolver();
        Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,
                null, null, null, null);
        if (cur.getCount() > 0) {
         cur.move(-1);
     while (cur.moveToNext()) {
         String id = cur.getString(
                        cur.getColumnIndex(ContactsContract.Contacts._ID));
  String 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()) {

         Log.v("Phone",""+pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER))+" - "+name);
         i++;
            } 
            pCur.close();
        }

          }
            }
  }

1 Ответ

0 голосов
/ 27 июня 2010

Столбец для номера телефона: People.NUMBER, а не People.NUMBER_KEY.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...