android读取通讯录联系人问题

       在获取通讯录联系人信息时,魅族 MX4 pro手机显示Android版本是5.1.1,按道理是不需要动态申请权限,可做的过程中发现,获取不到联系人信息,后边添加上动态申请权限同样无用,但是使用
        String[] cols = {ContactsContract.PhoneLookup.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER};
        Cursor cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                cols, null, null, null);
        for (int i = 0; i < cursor.getCount(); i++) {
            cursor.moveToPosition(i);
            // 取得联系人名字
            int nameFieldColumnIndex = cursor.getColumnIndex(ContactsContract.PhoneLookup.DISPLAY_NAME);
            int numberFieldColumnIndex = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
            String name = cursor.getString(nameFieldColumnIndex);
            String number = cursor.getString(numberFieldColumnIndex);
            Toast.makeText(this, name + " " + number, Toast.LENGTH_SHORT).show();
        }

以上代码又可以获取到联系人信息,经过测试发现
Cursor cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                cols, null, null, null);

这句代码可以动态申请权限,不知道自己理解是否有误,但问题已解决。有知道原因的朋友,指点一下,谢谢。

猜你喜欢

转载自blog.csdn.net/yangshuangyue/article/details/78915269