Я получил этот отрывок из StackOverflow:Ошибка при чтении Android контактов
Cursor people = getContentResolver().query(
ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
try{
while (people.moveToNext()) {
int nameFieldColumnIndex = people
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME);
String contact = people.getString(nameFieldColumnIndex);
int numberFieldColumnIndex = people.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
String number = people.getString(numberFieldColumnIndex);
System.out.println(contact + "-" + number);
}
}catch(Exception e){
System.out.println(e);
}
people.close();
Когда я пытаюсь читать phoneNum
столбец Я получаю сообщение об ошибке с помощью String number = people.getString(numberFieldColumnIndex)
. Проверяя индекс столбца, я обнаружил, что numberFiledColomnIndex = -1
.
Как я могу получить этот сниппет?
У вас есть ' ' в вашем манифесте? –
Nija
inside 'while (people.moveToNext()) {' add DatabaseUtils.dumpCurrentRow(), чтобы видеть столбцы – pskink
Хороший вопрос - но похоже, что работает первое getColumnIndex() (поле имени). Это означало бы, что разрешения очевидцев, вероятно, в порядке. IMHO ... – FoggyDay