Java 从联系人列表中获取联系人姓名

Java 从联系人列表中获取联系人姓名,java,android,sqlite,cursor,Java,Android,Sqlite,Cursor,我正在尝试从手机的联系人列表中获取联系人列表的名称,我在尝试的第一行出现错误:ContentResolver cr=ContactFragment.getActivity().getContentResolver() 有什么帮助吗 ContactFragment.java private String refreshData() { String namedata = ""; try { /***************************************

我正在尝试从手机的联系人列表中获取联系人列表的名称,我在尝试的第一行出现错误:
ContentResolver cr=ContactFragment.getActivity().getContentResolver()
有什么帮助吗

ContactFragment.java

private String refreshData() {
   String namedata = "";
   try {
        /**************************************************/
       ContentResolver cr = ContactFragment.getActivity().getContentResolver();
       Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null,
           "DISPLAY_NAME = '" + namedata + "'", null, null);
       if (cursor.moveToFirst()) {
           String contactId =
               cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
           //
           //  Get all phone numbers.
           //
           Cursor phones = cr.query(Phone.CONTENT_URI, null,
               Phone.CONTACT_ID + " = " + contactId, null, null);
           while (phones.moveToNext()) {
               String number = phones.getString(phones.getColumnIndex(namedata));

           phones.close();
       }

   }
}
试着这样做:

在清单文件中设置此标记:

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

现在我在第三行有个错误,cursor=context找不到context,它要求创建变量或字段
Cursor cursor = null;
    try {
        cursor = context.getContentResolver().query(Phone.CONTENT_URI, null, null, null, null);
        int contactIdIdx = cursor.getColumnIndex(Phone._ID);
        int nameIdx = cursor.getColumnIndex(Phone.DISPLAY_NAME);
        int phoneNumberIdx = cursor.getColumnIndex(Phone.NUMBER);
        int photoIdIdx = cursor.getColumnIndex(Phone.PHOTO_ID);
        cursor.moveToFirst();
        do {
            String idContact = cursor.getString(contactIdIdx);
            String name = cursor.getString(nameIdx);
            String phoneNumber = cursor.getString(phoneNumberIdx);
            //...
        } while (cursor.moveToNext());  
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        if (cursor != null) {
            cursor.close();
        }
    }