16_获取联系人信息

获取联系人信息

如何获取联系人信息,这是要访问用户隐私的

 

 

联系人信息都是放在系统的数据库中的,

数据库地址是

data/data/com.android.providers.contacts/databases/contacts2.db  

 

 

那么我们就要使用内容解析者了

 

ContentResolver cr = context.getContentResolver();

 

 

调用crquery方法

 

contentResolver.query(uri, projection, selection, selectionArgs, sortOrder)

5个参数,后面3个不用管,都是null

第一个是uri

第二个是projection

 

我们先来获取uri

 

Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;

 

这是通过电话信息获取Uri,

因为一个联系人可能有多个电话号码,

所以直接用联系人的话可能有些电话号码获取不到

 

不过如果只想获取联系人的话,那可以直接用联系人的uri

 

 

 

接下来是projection

String[] projection = {

ContactsContract.CommonDataKinds.Phone.CONTACT_ID, // 联系人ID,用来获取头像

ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,// 姓名

ContactsContract.CommonDataKinds.Phone.NUMBER,// 电话号码

};

 

 

 

 

然后query一下,cursor遍历就行了

 

Cursor cursor = cr.query(uri, projection, null, null, null);

if (cursor == null) {

return null;

}

 

 

while (cursor.moveToNext()) {

int contactId = cursor.getInt(0);

String name = cursor.getString(1);

String number = cursor.getString(2);

}

 

 

 

至于怎么用一般就是放在bean类里面了

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(16_获取联系人信息)