android如何获取手机联系人的数据库示例代码
很多人在做手机联系人的apk时会遇到,如何获取手机联系人数据库的问题,在这里我就简单的将代码写一下
packagecom.example.song.lx_day14_contacts; importandroid.content.ContentResolver; importandroid.database.Cursor; importandroid.net.Uri; importandroid.os.Bundle; importandroid.support.v7.app.AppCompatActivity; importandroid.widget.ListView; importandroid.widget.SimpleAdapter; importandroid.widget.TextView; importjava.util.ArrayList; importjava.util.HashMap; importjava.util.List; importjava.util.Map; /** *获取手机通讯录信息展示并且修改 *listview *simpleadapter *list<Map<String,String>> */ publicclassMainActivityextendsAppCompatActivity{ privateStringuri_raw="content://com.android.contacts/raw_contacts"; //直接获取data表中的数据类型是phone privateStringuri_phone="content://com.android.contacts/data/phones"; //直接获取data表中数据类型是emali privateStringuri_emalis="content://com.android.contacts/data/emails"; privateStringuri_data="content://com.android.contacts/data"; privateListViewlistView; privateTextViewempty; privateSimpleAdapteradapter; privateList<Map<String,String>>data=newArrayList<>(); privateContentResolvercontentResolver;//用来访问数据 @Override protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView=((ListView)findViewById(R.id.lv)); empty=((TextView)findViewById(R.id.empty)); listView.setEmptyView(empty);//设置空视图 adapter=newSimpleAdapter(this,data,R.layout.item,newString[]{"_id","display_Name","data1"},newint[]{R.id.id,R.id.name,R.id.number}); listView.setAdapter(adapter); contentResolver=getContentResolver(); reloadListView(); } privatevoidreloadListView(){ data.clear(); data.addAll(selectData()); adapter.notifyDataSetChanged(); } //查询工作用于查询dataraw_contact标返回list数据在刷新adapter privateList<Map<String,String>>selectData(){ /** *1.先查询raw获取_id查出所有联系人 *2.循环查询-->根据_id去data表中(_id=raw_contacts_id)查询data1数据 */ Cursorcursor=contentResolver.query(Uri.parse(uri_raw),newString[]{"_id","display_name"},null,null,null); //cursor返回的cursor数量不定 List<Map<String,String>>list=newArrayList<>(); while(cursor!=null&&cursor.moveToNext()){ String_id=cursor.getString(0); StringdisplayName=cursor.getString(1); Map<String,String>map=newHashMap<>(); map.put("_id",_id); map.put("display_Name",displayName); //根据_id去data查手机号 Cursorcursor1=contentResolver.query(Uri.parse(uri_phone),newString[]{"data1"},"raw_contact_id=?",newString[]{_id},null); //循环拿到手机号 StringBuffersb=newStringBuffer(); //这里循环拿到手机号是因为有时联系人中你可能一个人有几个电话 while(cursor1!=null&&cursor1.moveToNext()){ sb.append(cursor1.getString(0)+"\n"); } cursor1.close(); map.put("data1",sb.toString()); list.add(map); } cursor.close(); returnlist; } }
在这里不要忘记了添加权限
<uses-permissionandroid:name="android.permission.READ_CONTACTS"/> <uses-permissionandroid:name="android.permission.WRITE_CONTACTS"/>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。