要获得所有Android联系人,但没有在SIM卡上的那些,可以通过以下步骤实现:
<uses-permission android:name="android.permission.READ_CONTACTS" />
ContentResolver contentResolver = getContentResolver();
Cursor cursor = contentResolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
if (cursor != null && cursor.getCount() > 0) {
while (cursor.moveToNext()) {
String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
String displayName = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
// 获取联系人的电话号码
Cursor phoneCursor = contentResolver.query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?",
new String[]{contactId},
null);
if (phoneCursor != null && phoneCursor.moveToFirst()) {
List<String> phoneNumbers = new ArrayList<>();
do {
String phoneNumber = phoneCursor.getString(phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
phoneNumbers.add(phoneNumber);
} while (phoneCursor.moveToNext());
// 处理联系人数据,可以将其存储到自定义的数据结构中或进行其他操作
// ...
phoneCursor.close();
}
}
}
cursor.close();
通过以上步骤,你可以获得所有Android联系人的详细信息,包括姓名和电话号码。你可以根据实际需求对联系人数据进行处理,例如将其展示在界面上或进行其他操作。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云