美文网首页
Android-获取联系人信息,兼容华为手机

Android-获取联系人信息,兼容华为手机

作者: 程序员小杨 | 来源:发表于2020-09-23 17:22 被阅读0次

    一,清单文件,添加权限

    <uses-permission android:name="android.permission.READ_CONTACTS" />

    <uses-permission android:name="android.permission.WRITE_CONTACTS" />

    <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <!-- 获取用户联系人数据 -->

    二,动态申请权限

    三,跳转系统联系人界面

    //权限申请成功后,打开通讯录

    public void openPhoneBook() {

    Intent intent =new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);

        startActivityForResult(intent, Constant.REQUEST_CODE_PHONE);

    }

    四,回调数据

    //获取到电话

    private void getPhoneBookName(Intent data) {

    if (data !=null) {

    Uri uri = data.getData();

            String[] contact =new String[2];

            //得到ContentResolver对象**

            ContentResolver cr = getContentResolver();

            //取得电话本中开始一项的光标**

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

            if(cursor!=null)

    {

    cursor.moveToFirst();

                String ContactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));

                Cursor phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,

                        ContactsContract.CommonDataKinds.Phone.CONTACT_ID +"=" + ContactId, null, null);

                if(phone !=null){

    phone.moveToFirst();

                    contact[0] = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));

                    String phoneNum = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

                    //  把电话号码中的  -  符号 替换成空格

                    phoneNum = phoneNum.replaceAll("-", " ");

                    // 空格去掉  为什么不直接-替换成"" 因为测试的时候发现还是会有空格 只能这么处理

                    phoneNum = phoneNum.replaceAll(" ", "");

                    contact[1] = phoneNum;

                }

    phone.close();

                cursor.close();

            }

    String contactName = contact[0]; //姓名

            String phoneNum = contact[1];//电话

        }

    }

    相关文章

      网友评论

          本文标题:Android-获取联系人信息,兼容华为手机

          本文链接:https://www.haomeiwen.com/subject/qajoyktx.html