Android获取通讯录信息

Android获取通讯录信息

欢迎关注本人网站:rytter的私人博客网站

权限申请

自Android6.0以后,Android权限申请全部要求为动态申请(注:通讯录权限为危险权限),权限申请方法如下

首先设置权限组

private String[] permisssions=new String[]{
            Manifest.permission.READ_CONTACTS, 
}

然后进行权限的申请

public void getAppPermission(){
        //获取权限
        ActivityCompat.requestPermissions(MainActivity.this, permisssions, 1);
    }

信息的读取

public void getContacts(){
        Cursor cursor;
        String data="";
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED ) {
            //判断是否被授权
            Toast.makeText(MainActivity.this, "请授权!授权后重新打开软件!", Toast.LENGTH_LONG).show();
        }
        try {
            cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,null,null,null);
            if(cursor!=null){
                while (cursor.moveToNext()){
                    //获取联系人姓名
                    @SuppressLint("Range") String displayName=cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
                    //获取联系人手机号
                    @SuppressLint("Range") String number =cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                }
            }

        //在这里对信息进行响应的操作

        }catch (Exception e){
            e.printStackTrace();
        }
    }

Android通讯录文件可以通过cursor进行读取与储存。

利用displayName进行联系人姓名的保存。

利用number进行联系人手机号的存储。

你可能感兴趣的:(Android,android)