Android获取手机联系人或通讯录的基本信息(如姓名、电话),阿里、腾讯、华为、京东等多家大厂最新Android面试题

133 阅读1分钟


// 获得所有的联系人

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前沿技术大纲**

  ![](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/ddfa5fb913cb4f76963574f0d4b82d12~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MDY4Mzc0MTQxMzQ0:q75.awebp?rk3s=f64ab15b&x-expires=1774281327&x-signature=D6RvHSa2DHgWN81vLv%2FZQ9dlZm8%3D)

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

  ![](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/3ebb0cbd2423480097034b2ca873f311~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MDY4Mzc0MTQxMzQ0:q75.awebp?rk3s=f64ab15b&x-expires=1774281327&x-signature=5FPSh4zbUz2Rudq00sQaRXYGAPQ%3D)

##### 资料领取:**点赞+[点击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进阶实践技术,群内还有技术大牛一起讨论交流解决问题。**