获取手机通讯录信息方法总结
来源:互联网 发布:linux 访客破解root 编辑:程序博客网 时间:2024/05/20 15:57
1.最简洁的方法
使用类
android.provider.ContactsContract.CommonDataKinds.Phone;
代码如下:
<span style="font-size:18px;"> Cursor c = getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null,null); startManagingCursor(c); ListAdapter adapter=new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, c, new String[]{Phone.DISPLAY_NAME,Phone.NUMBER}, new int[]{android.R.id.text1,android.R.id.text2}); </span>
然后就可以使用ListView显示姓名和电话号码了。
注意:
1.如果一个人有两个电话,则分别显示。
2.如果有两个相同的人,也会分别显示,不会显示一个人的。
运行结果:
2.一般方法
使用类<span style="font-size:18px;">android.provider.ContactsContract.Contacts </span>代码如下:
<span style="font-size:18px;">Map<String,String> contacts; List<Map<String,String>> list=new ArrayList<Map<String,String>>(); int nameIndex=-1; ContentResolver cr=getContentResolver(); Cursor cur=cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null,null); while(cur.moveToNext()){ number=""; //得到名字 nameIndex=cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME); name=cur.getString(nameIndex); //得到电话号码 String contactId = cur.getString(cur .getColumnIndex(ContactsContract.Contacts._ID)); // 获取联系人的ID号,在SQLite中的数据库ID Cursor phone = cr.query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null); while (phone.moveToNext()) { String strPhoneNumber = phone.getString( phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); // 手机号码字段联系人可能不止一个 number += strPhoneNumber+"\n"; } contacts=new HashMap<String,String>(); //放入Map contacts.put("name", name); contacts.put("number", number); list.add(contacts); } cur.close(); </span>
得到名字和电话号码,放入Map中,然后再钭Map放入List中。
之后就可以使用ListView显示名字和电话号码:
部分代码如下:
<span style="font-size:18px;">SimpleAdapter adapter = new SimpleAdapter(this,list,android.R.layout.simple_list_item_2, new String[]{"name","number"}, new int[]{android.R.id.text1,android.R.id.text2}); listView.setAdapter(adapter); </span>
注意:
1.若一个姓名下有多个电话号码,则只显示一个姓名,多个号码。
2.若有多个同名的,还是显示多个姓名。
结果截图:
0 0
- 获取手机通讯录信息方法总结
- 获取手机通讯录信息
- 获取手机通讯录联系人信息
- 获取手机通讯录信息示例
- 获取android手机通讯录中的信息
- 获取手机中通讯录的所有信息
- 【Android】获取手机通讯录中的联系人信息
- iOS-JNAddressBook 获取手机通讯录信息
- iOS - ABPeoplePickerNavigationController 获取手机通讯录信息
- 内容解析者获取手机通讯录信息
- ContentProvider与隐式Intent获取手机联系人通讯录信息或电话的方法
- ContentProvider与隐式Intent获取手机联系人通讯录信息或电话的方法
- 读取手机通讯录信息
- iOS开发之获取手机通讯录联系人信息<二>
- iOS开发之获取手机通讯录联系人信息<一>
- Android手机获取通讯录联系人信息及短信广播实现
- Android:获取手机通讯录中联系人的信息
- 获取手机通讯录
- linux常用指令 1
- Factor-堆栈类语言
- javascript使用ajax异步处理
- Windows批处理学习(二)——批处理(3)
- yii多语言切换配置
- 获取手机通讯录信息方法总结
- 一个向别的进程插入dll的代码 .
- UVa 10976 - Fractions Again?!
- TextView 设置无下划线超链接
- 选择了好久,决定在CSDN安个家,sina博客也会同步更新。
- 项目自带servlet-api.jar和jsp-api.jar,发布到tomcat下冲突
- 同步和异步的理解
- Java网络编程笔记2
- iOS中scheme详解