在Android中,可以使用ContentResolver类和ContactsContract类来从通讯录中获取联系人姓名。以下是使用phoneNumber或email id作为参数从通讯录中获取联系人姓名的步骤:
<uses-permission android:name="android.permission.READ_CONTACTS" />
private String getContactName(String phoneNumberOrEmail) {
String contactName = "";
// 查询条件
String selection = ContactsContract.CommonDataKinds.Phone.NUMBER + " = ? OR " +
ContactsContract.CommonDataKinds.Email.ADDRESS + " = ?";
String[] selectionArgs = new String[]{phoneNumberOrEmail, phoneNumberOrEmail};
// 查询联系人
Cursor cursor = getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
new String[]{ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME},
selection,
selectionArgs,
null
);
if (cursor != null && cursor.moveToFirst()) {
contactName = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
cursor.close();
}
return contactName;
}
String phoneNumberOrEmail = "1234567890"; // 替换为要查询的phoneNumber或email id
String contactName = getContactName(phoneNumberOrEmail);
这样,contactName
变量将包含从通讯录中获取到的联系人姓名。
请注意,上述代码仅获取了第一个匹配的联系人姓名。如果存在多个匹配的联系人,可以根据需求进行适当的处理。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云