Android读取联系人的姓名及电话号码

您所在的位置:网站首页 物美集团高管名单联系方式及电话号码 Android读取联系人的姓名及电话号码

Android读取联系人的姓名及电话号码

2024-07-10 21:34| 来源: 网络整理| 查看: 265

Android中联系人的信息是通过ContentProvider来供外部应用获取的,我们使用时只需根据系统联系人ContentProvider的Uri即可获取所需数据。下面讲解如何获取联系人的姓名及电话号码,别的数据如邮箱、照片等数据的获取都可使用此方式。

首先在清单文件添加下述权限 其次编写布局文件

此布局有一个ListView 和一个Button,点击Button时获取姓名及电话号码并显示在ListView 上

Java代码 mGetContactsButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //getContacts()方法获取联系人的姓名及电话号码 ArrayAdapter adapter = new ArrayAdapter(MainActivity.this, android.R.layout.simple_list_item_1, getContacts()); //将姓名及电话号码显示到ListView上 mContactsListView.setAdapter(adapter); } }); private String[] getContacts() { //联系人的Uri,也就是content://com.android.contacts/contacts Uri uri = ContactsContract.Contacts.CONTENT_URI; //指定获取_id和display_name两列数据,display_name即为姓名 String[] projection = new String[] { ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME }; //根据Uri查询相应的ContentProvider,cursor为获取到的数据集 Cursor cursor = this.getContentResolver().query(uri, projection, null, null, null); String[] arr = new String[cursor.getCount()]; int i = 0; if (cursor != null && cursor.moveToFirst()) { do { Long id = cursor.getLong(0); //获取姓名 String name = cursor.getString(1); //指定获取NUMBER这一列数据 String[] phoneProjection = new String[] { ContactsContract.CommonDataKinds.Phone.NUMBER }; arr[i] = id + " , 姓名:" + name; //根据联系人的ID获取此人的电话号码 Cursor phonesCusor = this.getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, phoneProjection, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + id, null, null); //因为每个联系人可能有多个电话号码,所以需要遍历 if (phonesCusor != null && phonesCusor.moveToFirst()) { do { String num = phonesCusor.getString(0); arr[i] += " , 电话号码:" + num; }while (phonesCusor.moveToNext()); } i++; } while (cursor.moveToNext()); } return arr; }

最终的效果如下图所示:

这里写图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3