android3种方式查询手机通讯录联系人
来源:互联网 发布:pixlr软件 编辑:程序博客网 时间:2024/05/29 12:29
3种方式查询手机通讯录联系人
本文是提供了3种方式查询通讯录,获取手机通讯录中所有联系人的ID和联系人姓名。
- 通过ContentResolver类的query方法,这种方法在主线程中查询数据,query方法返回数据库的游标Cursor,需要自己去手动关闭。
- 通过Activity类的managedQuery方法,这种方法查询同样是在主线程中,但是不需要手动关闭Cursor,因为Activity类销毁时再onDestroy方法中会去关闭。
- 通过Android提供的异步查询框架AsyncQueryHandler,这个类是一个抽象类,提供异步查询,当查询完毕后,会调用onQueryComplete方法,该方法参数cursor是查询系统数据库完成后获得的游标。
实例代码1
通过ContentResolver类的query方式查询,例如:
@获取手机通讯录联系人ID和NAMEprotected void getAllContacts() { ContentResolver cr = this.getContentResolver(); Cursor cursor = cr.query( ContactsContract.Contacts.CONTENT_URI, null, null, null, ContactsContract.Contacts._ID + " DESC"); while(cursor.moveToNext()) { System.out.println(cursor.getString( cursor.getColumnIndexOrThrow(ContactsContract.Contacts._ID))); System.out.println(cursor.getString( cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME))); } cursor.close(); }
实例代码2
通过Activity类的managedQuery方法
@获取手机通讯录联系人ID和NAMEprivate void getContacts(){ Cursor cursor = managedQuery(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); while (cursor.moveToNext()) { System.out.println( cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.Contacts._ID))); System.out.println( cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME))); } }
实例代码3
通过AsyncQueryHandler
@获取手机通讯录联系人ID和NAMEprivate void getContactsAsync(){ MyQueryHandler qh = new MyQueryHandler(getContentResolver()); qh.startQuery(0, null, ContactsContract.Contacts.CONTENT_URI, null, null, null, null); }@自定义一个异步查询类,继承AsyncQueryHandler类class MyQueryHandler extends AsyncQueryHandler{ public MyQueryHandler(ContentResolver cr) { super(cr); } @Override protected void onQueryComplete(int token, Object cookie, Cursor cursor) { super.onQueryComplete(token, cookie, cursor); while(cursor.moveToNext()){ System.out.println(cursor.getString( cursor.getColumnIndexOrThrow(ContactsContract.Contacts._ID))); System.out.println(cursor.getString( cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME))); } cursor.close(); } }
0 0
- android3种方式查询手机通讯录联系人
- 获取手机通讯录联系人
- 获取手机通讯录联系人
- android获取手机通讯录联系人
- 获取手机通讯录联系人信息
- 获得手机通讯录联系人信息
- android获取手机通讯录联系人
- android获取手机通讯录联系人
- android获取手机通讯录联系人
- android获取手机通讯录联系人
- android获取手机通讯录联系人
- android获取手机通讯录联系人
- android获取手机通讯录联系人
- 获取手机通讯录联系人 CNContacts
- 模拟手机通讯录联系人功能
- ContentResolver查询手机联系人
- 获取手机通讯录联系人(包含模糊查询,dialog自定义,也有一个自定义通知栏)
- 手机通讯录、联系人的备份、恢复经验
- SQL0911N 由于死锁或超时,已回滚当前事务。原因码“68”。SQLSTATE=40001
- 归并排序
- 如何利用十行代码,绕过杀毒软件实现免杀?
- bootstrap modal居中
- centos下mysql源码编译安装和主备异步配置
- android3种方式查询手机通讯录联系人
- 无线技术知识
- 【Poj 2533】 Longest Ordered Subsequence 最长上升子序列
- TCP和UDP的区别
- JAVA 多线程创建(everything is from ABC)
- 让组头跟着tableview一起拖动
- 日志分析总结
- Handler机制
- Redhat spark安装笔记