2013-08-12 2 views
5

Я пытаюсь получить все имена контактов и номер, и я пытаюсь использовать getContentResolver но я получаюgetcontentresolver() не определено для типа

метод получения распознаватель контента() не определено для типа

этот погрешность.

Как я могу это исправить?

Вот код ниже:

public class ContactManager { 

public ArrayList<Product> getContactNumber() { 
    Cursor phones = getContentResolver().query(
      ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, 
      null, null); 
    while (phones.moveToNext()) { 
     String name = phones 
       .getString(phones 
         .getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); 
     String phoneNumber = phones 
       .getString(phones 
         .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
    } 
    phones.close(); 
} 

}

ответ

10

Проблема заключается в Context, передать контекст вашего Activity, которые используют ваши Class в это Constructor:

Context context; 
public ContactManager (Context context) { 
    this.context = context; 
} 

затем использовать

context.getContentResolver()

абсолютно идеальное использование контекста здесь.

0

Вы также можете просто использовать это:

public class ContactManager { 

    public ArrayList<Product> getContactNumber(Context mContext) { 
    Cursor phones = mContext.getContentResolver().query(
     ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, 
     null, null); 
    while (phones.moveToNext()) { 
    String name = phones 
      .getString(phones 
        .getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); 
    String phoneNumber = phones 
      .getString(phones 
        .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
} 
    phones.close();}} 
Смежные вопросы