效果类似下图:
是用一个ListView显示的
package com.example.android_contentresolver;
import android.content.ContentResolver;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MainActivity extends AppCompatActivity {
private ContentResolver cr;
private ListView list_item_main_lv;
private List list;
private SimpleAdapter simpleAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
list_item_main_lv = (ListView) findViewById(R.id.list_item_main_lv);
//获取内容访问者
cr = getContentResolver();
list = new ArrayList();
simpleAdapter = new SimpleAdapter(this, list,android.R.layout.simple_list_item_2,new String[]{"sname","data1"},new int[]{android.R.id.text1,android.R.id.text2});
list_item_main_lv.setAdapter(simpleAdapter);
}
public void getLinkman(View view){
//获取系统的
Uri uri = Uri.parse("content://com.android.contacts/raw_contacts");
Cursor cursor = cr.query(uri,null,null,null,null);
while (cursor.moveToNext()){
Map<String,Object> date=new HashMap<>();
int id = cursor.getInt(cursor.getColumnIndex("_id"));
String name = cursor.getString(cursor.getColumnIndex("display_name"));
date.put("sname",name);
Uri uri1 = Uri.parse("content://com.android.contacts/raw_contacts/"+id+"/data");
Cursor cursor1 = cr.query(uri1,null,null,null,null);
while (cursor1.moveToNext()){
String data1=cursor1.getString(cursor1.getColumnIndex("data1"));
String dateName = cursor1.getString(cursor1.getColumnIndex("mimetype"));
if("vnd.android.cursor.item/phone_v2".equals(dateName)){
date.put("data1",""+data1);
list.add(date);
}
}
}
simpleAdapter.notifyDataSetChanged();
}
}
在清单文件中添加权限:
<!--获取联系人权限-->
<uses-permission android:name="android.permission.READ_CONTACTS" />