获取手机通讯录信息方法总结
1.最简洁的方法
使用类
android.provider.ContactsContract.CommonDataKinds.Phone;
代码如下:
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});
然后就可以使用ListView显示姓名和电话号码了。
注意:
1.如果一个人有两个电话,则分别显示。
2.如果有两个相同的人,也会分别显示,不会显示一个人的。
运行结果:
2.一般方法
使用类
android.provider.ContactsContract.Contacts
代码如下:
view plain
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
contact
相关新闻>>
- 发表评论
-
- 最新评论 更多>>
您可能感兴趣的文章
- 白话算法(7) 生成全排列的几种思路(三) 临位对换法
- Windows Phone 实用开发技巧(2):使用TombstoneHelp
- Windows Phone 实用开发技巧(11):让StackPanel中的
- Windows Phone 7 最新的开发工具库
- 小试Sketchflow for Windows Phone 7
- Pocket PC获取路径的六种方法
- Windows Phone 7 开发之Microsoft.Phone.Tasks中
- Windows Phone 实用开发技巧(23):强制关闭SIP
- Windows Phone 7 开发探索笔记5——页面间导航
- Windows Phone实用开发技巧(1):保存图片及加载图片