Android java.lang.IllegalArgumentException: неверный столбец _count ошибка при получении контактов - PullRequest
0 голосов
/ 14 декабря 2011

Я работаю над проектом, в котором мне нужно перечислить все контакты.Я следую этой статье .

Мой AndroidManifest.xml содержит ниже, поэтому я могу читать контакты:

<uses-permission android:name="android.permission.READ_CONTACTS"/>

Код здесь :

private void getContacts() {
    try {
        // Form an array specifying which columns to return. 
        String[] projection = new String[] {
                                    People._ID,
                                    People._COUNT,
                                    People.NAME,
                                    People.NUMBER};

        // Get the base URI for the People table in the Contacts content provider.
        Uri contacts =  People.CONTENT_URI;

        // Make the query. 
        Cursor managedCursor = managedQuery(contacts,
                                    projection, // Which columns to return 
                                    null,       // Which rows to return (all rows)
                                    null,       // Selection arguments (none)
                                    // Put the results in ascending order by name
                                    People.NAME + " ASC");

        printContacts(managedCursor);
    }
    catch(Exception ex) {
        Log.d("Contacts",ex.toString());
    }
}

private void printContacts(Cursor cur){ 
    if (cur.moveToFirst()) {
        String name; 
        String phoneNumber; 
        int nameColumn = cur.getColumnIndex(People.NAME); 
        int phoneColumn = cur.getColumnIndex(People.NUMBER);
        String imagePath; 

        do {
            // Get the field values
            name = cur.getString(nameColumn);
            phoneNumber = cur.getString(phoneColumn);
            Log.d("Contacts","Name: "+ name + " **** Phone: "+ phoneNumber);
        } while (cur.moveToNext());
    }
}

Когда я запускаю его на Эмуляторе (2.3.3), он выдает ошибку ниже:

java.lang.IllegalArgumentException: Invalid column _count

Может кто-нибудь это исправить?Большое спасибо за ваше драгоценное время и помощь.

Ответы [ 2 ]

2 голосов
/ 14 декабря 2011

Если удалить строку People._COUNT, все работает

См. Также: Android SDK - список всех пользователей

1 голос
/ 14 декабря 2011

Android Люди класс устарел. Вместо этого вы должны использовать ContactsContract . Поскольку вы запускаете его на уровне API-интерфейса эмулятора 10, а этот класс устарел с уровня API-5, нет смысла продолжать использовать People.

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