// 获得所有的联系人
Cursor cur = context.getContentResolver().query(
ContactsContract.Contacts.CONTENT\_URI,
null,
null,
null,
ContactsContract.Contacts.DISPLAY\_NAME
+ " COLLATE LOCALIZED ASC");
// 循环遍历
if (cur.moveToFirst()) {
int idColumn = cur.getColumnIndex(ContactsContract.Contacts.\_ID);
int displayNameColumn = cur
.getColumnIndex(ContactsContract.Contacts.DISPLAY\_NAME);
do {
jsonObject = new JSONObject();
contactData.put("information" + num, jsonObject);
num++;
// 获得联系人的ID号
String contactId = cur.getString(idColumn);
// 获得联系人姓名
String disPlayName = cur.getString(displayNameColumn);
// 查看该联系人有多少个电话号码。如果没有这返回值为0
int phoneCount = cur
.getInt(cur
.getColumnIndex(ContactsContract.Contacts.HAS\_PHONE\_NUMBER));
jsonObject.put("name", disPlayName);
4、调用方法即可
========
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
switch (requestCode) {
case 1:
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
//在这里执行读取通讯录方法
try {
ContactType mobiletype= new ContactType(this);
String contactinfo=mobiletype.getInformation();
LgqLogutil.e("通讯录==== "+contactinfo);
textView.setText(contactinfo);
} catch (JSONException e) {
e.printStackTrace();
}
} else {
### 最后
针对Android程序员,我这边给大家整理了一些资料,包括不限于高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter等全方面的Android进阶实践技术;希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!
* **Android前沿技术大纲**

* **全套体系化高级架构视频**

##### 资料领取:**点赞+[点击GitHub免费获取](https://github.com/a120464/Android-P7/blob/master/Android%E5%BC%80%E5%8F%91%E4%B8%8D%E4%BC%9A%E8%BF%99%E4%BA%9B%EF%BC%9F%E5%A6%82%E4%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)**
> **往期Android高级架构资料、源码、笔记、视频。高级UI、性能优化、架构师课程、混合式开发(ReactNative+Weex)全方面的Android进阶实践技术,群内还有技术大牛一起讨论交流解决问题。**