最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
android如何获取手机联系人的数据库示例代码
时间:2017-03-07 编辑:简简单单 来源:一聚教程网
很多人在做手机联系人的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 */ publicclassMainActivityextendsAppCompatActivity { privateString uri_raw ="content://com.android.contacts/raw_contacts"; //直接获取data表中的 数据类型是phone privateString uri_phone ="content://com.android.contacts/data/phones"; //直接获取data表中数据类型是emali privateString uri_emalis ="content://com.android.contacts/data/emails"; privateString uri_data ="content://com.android.contacts/data"; privateListView listView; privateTextView empty; privateSimpleAdapter adapter; privateList privateContentResolver contentResolver;//用来访问数据
@Override protectedvoidonCreate(Bundle savedInstanceState) { 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();
}
//查询工作 用于查询data raw_contact标 返回list数据 在刷新adapter privateList /** * 1.先查询raw 获取_id查出所有联系人 * 2.循环查询-->根据_id去data表中(_id=raw_contacts_id)查询 data1数据 */ Cursor cursor = contentResolver.query(Uri.parse(uri_raw),newString[]{"_id","display_name"},null,null,null); //cursor返回的cursor数量不定 List while(cursor !=null&& cursor.moveToNext()) { String _id = cursor.getString(0); String displayName = cursor.getString(1); Map map.put("_id", _id); map.put("display_Name", displayName); //根据_id 去data查手机号 Cursor cursor1 = contentResolver.query(Uri.parse(uri_phone),newString[]{"data1"},"raw_contact_id=?",newString[]{_id},null); //循环拿到手机号 StringBuffer sb =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; } } |
在这里不要忘记了添加权限
代码如下 | 复制代码 |
相关文章
- sora软件价格介绍 02-22
- sora官网入口地址一览 02-22
- Sora生成的视频使用教程 02-22
- 《梦幻西游》元宵灯谜线索答案大全2024 02-22
- 《原神》有朋自远方来第一天通关攻略 02-22
- 《苏醒之路》四个结局达成攻略 02-22