传入号码,获取联系人姓名:
需要在AndroidManifest.xml添加联系人权限
<uses-permission android:name="android.permission.READ_CONTACTS"/> <uses-permission android:name="android.permission.WRITE_CONTACTS"/>
在Android M上动态获取联系人权限
private void getPermission(){
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
int hasWriteContactsPermission = checkSelfPermission(Manifest.permission.READ_CONTACTS);
if (hasWriteContactsPermission != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{Manifest.permission.WRITE_CONTACTS}, 1);
return;
}
}
}
private String getContact(String number) {
String name = "";
String[] projection = {ContactsContract.PhoneLookup.DISPLAY_NAME,
/*ContactsContract.CommonDataKinds.Phone.NUMBER*/};
Cursor cursor = this.getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
projection,
ContactsContract.CommonDataKinds.Phone.NUMBER + " = '" + number + "'",
null,
null);
if (cursor == null) {
return "";
}
for (int i = 0; i < cursor.getCount(); i++) {
cursor.moveToPosition(i);
int nameFieldColumnIndex = cursor.getColumnIndex(ContactsContract.PhoneLookup.DISPLAY_NAME);
cursor.getColumnIndex(ContactsContract.PhoneLookup.DISPLAY_NAME);
name = cursor.getString(nameFieldColumnIndex);
break;
}
if (cursor != null) {
cursor.close();
}
return name;
}