示例图片
在AndroidManifest.xml添加权限
<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>
具体代码
MainAcitvity 核心代码
private ContentResolver contentResolver;
private ListView listView;
private List<String> mContactsName = new ArrayList<>();
private List<String> mContactsPhone = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list);
//获取内容访问者
contentResolver = getContentResolver();
listView = (ListView) findViewById(R.id.lv);
listView.setAdapter(new MyAdapter());
getContacts();
}
public void getContacts(){
Uri uri=Uri.parse("content://com.android.contacts/raw_contacts");
Cursor cursor=contentResolver.query(uri,null,null,null,null);
while(cursor.moveToNext()){
int id=cursor.getInt(cursor.getColumnIndex("_id"));
String name=cursor.getString(cursor.getColumnIndex("display_name"));
Log.i("test",id+" "+name);
Uri uriData=Uri.parse("content://com.android.contacts/raw_contacts/"+id+"/data");
Cursor cursorData=contentResolver.query(uriData,null,null,null,null);
while(cursorData.moveToNext()){
String data1=cursorData.getString(cursorData.getColumnIndex("data1"));
String type=cursorData.getString(cursorData.getColumnIndex("mimetype"));
Log.i("test"," "+data1+" : "+type);
mContactsName.add(name);
mContactsPhone.add(data1);
}
}
}
class MyAdapter extends BaseAdapter {
private TextView tv_item;
private TextView tv2_item;
@Override
public int getCount() {
return mContactsPhone.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = getLayoutInflater().inflate(R.layout.list_item,null);
tv_item = (TextView) view.findViewById(R.id.name);
tv2_item = (TextView) view.findViewById(R.id.phone);
tv_item.setText(mContactsName.get(position));
tv2_item.setText(mContactsPhone.get(position));
return view;
}
}
}