Не в состоянии прочитать все значения контакта - PullRequest
0 голосов
/ 13 октября 2009

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

Как я могу получить все его телефонные номера, все значения eamil и адреса?

Заранее спасибо ...

1 Ответ

1 голос
/ 13 октября 2009

Прежде всего, не ставьте код в комментариях. Отредактируйте исходное сообщение, это значительно облегчит чтение.

Во-вторых, это немного сложная проблема с Android. Контактная информация не все в одном и том же месте, поэтому, если вы хотите ее все , вам придется выполнить несколько запросов. Вот пример вырезания и вставки всех телефонных номеров из этой темы :

void trythiscode(){
   // An array specifying which columns to return.
   String[] projection = new String[] {
   People._ID,
   People.NAME,
   People.NUMBER,
};

   // Get the base URI for People table in Contacts content provider.
   // which is: content://contacts/people/
   Uri contactUri = People.CONTENT_URI;

   // Best way to retrieve a query; returns a managed query.
   Cursor peopleCursor = managedQuery (contactUri,
     projection, //Which columns to return.
     null, // WHERE clause--we won't specify.
     null, // Selection Args??
     People.DEFAULT_SORT_ORDER); // Order-by name

   // go to the beginning of the list
   peopleCursor.moveToFirst();


   // So, here we have a contact. We need to get the contact ID (_id) then
   // build the Uri to get the phones section of that user's record
   // which is a subdirectory of a contact record

   long personId = peopleCursor.getLong(peopleCursor.getColumnIndex("_id"));

   Uri personUri = ContentUris.withAppendedId(contactUri, personId );

   // So now the URL looks like: content://contacts/people/_id(where the actual id of the record is here)
   Uri phoneUri=
    Uri.withAppendedPath(personUri, Contacts.People.Phones.CONTENT_DIRECTORY);

   // Now the URL looks like: content://contacts/people/_id/phones (where phones is literally "phones")

   // Now get all the phone numbers for this contact
   Cursor phonesCursor = managedQuery(phoneUri,
     null,
     null,
     null,
     Phones.DEFAULT_SORT_ORDER);

   // We now have a cursor for all the phone numbers for that User ID
   // go to the beginning of the phone list.
   phonesCursor.moveToFirst();


}

И вполне возможно, что это устарело (я не пробовал). Вам придется потратить некоторое время на чтение документации на случай, если они обновят информацию в Donut.

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