Android 获取联系人姓名与电话号码
16lz
2021-01-23
权限
<uses-permission android:name="android.permission.READ_CONTACTS" />
跳转通讯录界面
findViewById(R.id.btn_select_contact).setOnClickListener(v -> { new RxPermissions(this) .requestEach(Manifest.permission.READ_CONTACTS) .subscribe(permission -> { if (permission.granted) { //跳转到通讯录选择界面 Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.CommonDataKinds.Phone.CONTENT_URI); startActivityForResult(intent, REDE_CONTACT); } });});
处理返回数据
@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REDE_CONTACT) { try { Uri uri = data.getData(); ContentResolver cr = this.getContentResolver(); Cursor cursor = cr.query(uri, null, null, null, null); //移动到游标到联系人表第一行 if (cursor != null && cursor.moveToFirst()) { //联系人姓名 String nameStr = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); //读取通讯录的号码 String phoneStr = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); cursor.close(); name.setText(nameStr); phoneNum.setText(phoneStr); } else { new Throwable("数据库游标不存在"); } } catch (Throwable throwable) { new Throwable("未知错误"); } }
效果:
更多相关文章
- android获取联系人信息
- Android 获取Contacts 联系人 姓名 号码 照片信息
- android 调用系统通讯录添加联系人,并将号码传值到相应的控件内
- Android中通过ContentProvider和ContentResolver对通讯录的读取
- Android 向系统添加一个联系人信息contact
- Android 中ContentProvider的用法及用ContentProvider访问联系人
- Android中获取系统通讯录联系人并解决Android6.0权限问题
- android管理联系人操作