Contacts Provider是一使用者联系人信息的主要数据库,包括来自联系人应用和社交网络应用的数据。在你的应用,你可以直接调用ContentResolver访问联系人Provider的信息或者通过发送Intent到联系人应用。
为了读取Provider请求权限
<uses-permission android:name="android.permission.READ_CONTACTS" />
因为android.permission.READ_CONTACTS是危险权限所以需要设置运行时的权限。
相关内容android学习(八) 使用系统权限
查询联系人
为了帮助我们查询联系人Provider,android提供了一个ContactsContract类。
import android.provider.ContactsContract;
Cursor cursor = null;
try {
//获取内容提供器
ContentResolver resolver = getContentResolver();
// 查询联系人数据
cursor = resolver.query(Phone.CONTENT_URI, null, null, null, null, null);
//遍历联系人列表
while (cursor.moveToNext()) {
//获取联系人姓名
String name = cursor.getString(cursor.getColumnIndex(Phone.DISPLAY_NAME));
//获取联系人手机号
String number = cursor.getString(cursor.getColumnIndex(Phone.NUMBER));
Log.d("联系人", "Name:" + name + "\tPhone:" + number);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (cursor != null) {
cursor.close();
}
}
}