Android 获取通讯录联系人信息

tech2025-09-05  20

Android 获取通讯录联系人信息

话不多说,直接上代码吧,记得先请求通讯录权限。

// 【当前代码的执行环境为 Activity】 // 选择联系人 private void handleContactIntent() { Intent intent = new Intent(Intent.ACTION_PICK); intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE); ComponentName componentName = intent.resolveActivity(getPackageManager()); if (componentName == null) { Toast.makeText(this, "operation is not supported in this device", Toast.LENGTH_SHORT).show(); return; } startActivityForResult(intent, GET_CONTACT); } // 处理选中的联系人信息 @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == GET_CONTACT) { if (data != null && data.getData() != null){ handleContactResult(data.getData()); } } } private void handleContactResult(Uri uri) { if (uri != null) { try { Cursor query = getContentResolver().query(uri, new String[]{ContactsContract.CommonDataKinds.Phone._ID, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.DATA, ContactsContract.CommonDataKinds.Phone.PHOTO_URI}, null, null, null); if (query != null && query.moveToFirst()) { long id = query.getLong(0); String contactName = query.getString(1); String contactPhone = query.getString(2); String photoUri = query.getString(3); } if (query != null) { query.close(); } } catch (Exception e) { e.printStackTrace(); } } }

就这样吧,没啥好解释的(lazy)。。。

最新回复(0)