Android获取通讯录信息
权限申请
自Android6.0以后,Android权限申请全部要求为动态申请(注:通讯录权限为危险权限),权限申请方法如下
首先设置权限组
1 2 3
| private String[] permisssions=new String[]{ Manifest.permission.READ_CONTACTS, }
|
然后进行权限的申请
1 2 3 4
| public void getAppPermission(){ ActivityCompat.requestPermissions(MainActivity.this, permisssions, 1); }
|
信息的读取
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| 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进行联系人手机号的存储。