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进行联系人手机号的存储。