16.安卓.获取所有联系人
xml.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/backgroundcolor"
android:orientation="vertical" >
<ListView
android:id="@+id/lv_select_contact"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</ListView>
</LinearLayout>
Java代码:
public List<ContactInfo> getContactInfos(){
ContentResolver resolver = context.getContentResolver();
//1.获取联系人的id
//2.根据联系人的id 获取联系人名字
//3.根据联系人的id 数据的type 获取到对应的数据(电话,email);
List<ContactInfo> infos = new ArrayList<ContactInfo>();
ContactInfo info ;
Uri uri = Uri.parse("content://com.android.contacts/raw_contacts");//获取id和名字
Uri datauri = Uri.parse("content://com.android.contacts/data");//获取手机号 和 type
Cursor cursor = resolver.query(uri, null, null, null, null);
while (cursor.moveToNext()) {
info = new ContactInfo();
String id = cursor.getString(cursor.getColumnIndex("_id"));
String name = cursor.getString(cursor.getColumnIndex("display_name"));
info.setName(name);
Cursor datacursor = resolver.query(datauri, null, "raw_contact_id=?", new String[]{id}, null);
while (datacursor.moveToNext()) {
//mimetype
String type = datacursor.getString(datacursor.getColumnIndex("mimetype"));
if("vnd.android.cursor.item/phone_v2".equals(type)){//如果是手机号的话,就保存进去
String number = datacursor.getString(datacursor.getColumnIndex("data1"));
info.setPhone(number);
尼玛要break啊
}
}
datacursor.close();
infos.add(info);
info = null;
}
cursor.close();
return infos;
}
然后就返回,查询电话号码就这么简单
需要添加权限:
<uses-permission android:name="android.permission.READ_CONTACTS" />

浙公网安备 33010602011771号