Основываясь на моем опыте работы со списком контактов, вам нужно разработать свой запрос на основе того, что доступно.В 1.6 была простота одной таблицы со всей информацией.Тем не мение;с рассветом 2.0 они представили две таблицы.Где вы получаете идентификатор из одной таблицы и запрос на основе этого идентификатора, чтобы найти номер телефона.Чтобы проиллюстрировать это, приведу пример кода, который работал для меня, хотя у меня есть некоторые незначительные проблемы, когда некоторые контакты не возвращают номер телефона 2/70, хотя у всех 70 пользователей есть ID и номер телефона.Я надеюсь, что это поможет:
// look up contact via name
String name = contacts.getItem(arg1);
Uri lookup = Uri.withAppendedPath(
ContactsContract.Contacts.CONTENT_FILTER_URI, name);
// look up id
Cursor c = getContentResolver().query(lookup, null, null, null, null);
String id = null;
int id_index = c.getColumnIndexOrThrow(ContactsContract.Contacts._ID);
if (c.moveToFirst())
id = c.getString(id_index);
else
Toast.makeText(getApplicationContext(), "Friend not found",
Toast.LENGTH_SHORT).show();
c.close();
// use id if not null, to find contact's phone number / display name
if (id != null) {
String where = ContactsContract.Data.CONTACT_ID + " = " + id
+ " AND " + ContactsContract.Data.MIMETYPE + " = '"
+ ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE
+ "'";
c = getContentResolver().query(ContactsContract.Data.CONTENT_URI,
null, where, null, null);
c.moveToFirst();
int iname = c
.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME);
int iphone = c
.getColumnIndexOrThrow(ContactsContract.CommonDataKinds.Phone.NUMBER);
if (c.getCount() > 0) {
_friend.setName(c.getString(iname));
_friend.setPhone(c.getString(iphone));
Если у вас есть какие-либо дополнительные вопросы, пожалуйста, не стесняйтесь спрашивать, я сделаю все возможное, чтобы ответить на них.Что я могу сказать без журнала cat, так это то, что вы пытаетесь найти в телефонном номере правильную структуру таблицы для запроса.Если вы попытаетесь получить доступ к информации из запроса, который вернул 0 строк, вы получите исключение.Пожалуйста, прочитайте эту ошибку и покажите ее.