2 ajiao2013 ajiao2013 于 2014.05.24 10:44 提问

在自己开发的应用程序中读取通讯录,想选择一个电话号码到自己的应用程序中

用下面的方法虽然可以得到一个电话号码,但不是自己选择的电话号码,每次都返回那个号码.求大神帮忙看看要怎么才能读取到自己所选的号码...先谢过了`enter code here @Override
public void onActivityResult(int reqCode, int resultCode, Intent data) {
super.onActivityResult(reqCode, resultCode, data);
ContentResolver cr = getContentResolver();
//取得电话本中开始一项的光标
Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
//向下移动光标
while(cursor.moveToNext())
{
//取得联系人名字
int nameFieldColumnIndex = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME);
String contact = cursor.getString(nameFieldColumnIndex);
//取得电话号码
String ContactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
//Cursor phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + ContactId, null, null);
Cursor phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + ContactId + " AND "
+ ContactsContract.CommonDataKinds.Phone.TYPE + "=" +
ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE, null, null);
if(phone.moveToFirst())
{
String PhoneNumber = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
string = PhoneNumber ;
cursor.close();
mNumber.setText(string);
break;
}
}

}`

1个回答

u013415968
u013415968   2014.06.20 21:23

Cursor cursor = mContentResolver.query(Contacts.CONTENT_URI, null,
null, null, null);
while (cursor.moveToNext()) {
//取得联系人ID,Name
int id = cursor.getInt(cursor.getColumnIndex(Contacts._ID));
String name = cursor.getString(cursor
.getColumnIndex(Contacts.DISPLAY_NAME));
//根据Id得到联系人的另一张表
Cursor cursorPhone = mContentResolver.query(Phone.CONTENT_URI,
null, Phone.CONTACT_ID + "=" + id, null, null);
while (cursorPhone.moveToNext()) {
//此表中有联系人号码
String phone = cursorPhone.getString(cursorPhone
.getColumnIndex(Phone.NUMBER));
Log.i("-------------------", phone);
ConstactVO vo = new ConstactVO(id, name, phone);
list.add(vo);
}
}

应该就是这样 参考一下吧

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
ios开发中直接选择一个联系人的电话号码和姓名
选择一个联系人的电话号码和姓名
android:获取手机号码和姓名实现通讯录
首先是运行结果 由于通讯录在手机里是以数据库贮存的 所以我们可以通过一个方法 context.getContentResolver().query(Phone.CONTENT_URI, null, null, null, null); 来获得通讯录 ,这个方法返回一个游标的数据类型,通过moveToNext()方法来获取所有的手机号码信息 当然读取手机通讯录需要权限 在adnro
在iOS中读取通讯录中联系人电话号码时需要注意的版本区别
今天遇到一个问题,发现同一个联系人的电话号码有时候读取得到,有时候读取不到。后来发现在iOS 8上是正常工作的,但是在iOS 7.1上获取到的值为空(也可能是iOS 8之前的所有版本,没有全部验证过)。123456789101112ABAddressBookRef abRef = ABAddressBookCreateWithOptions(NULL, NULL);CFArrayRef cfPer
如何使应用程序具有脚本支持功能
  如何使应用程序具有脚本支持功能  杨山河 胡晓敏   问题提出的背景 在软件开发规模日益庞大的今天,软件的可维护性和可重用性显得非常重要。谁都希望自己的开发成果能得到最大的应用,希望能够在不重新推倒原来的开发成果基础之上能够完善现有系统。提供二次开发功能成为解决当今日益严重的软件开发危机的一个重要途径。但如果提供API进行二次开发将带来诸于语言调用规则等棘手问题,基于此,许多成功系统都采用S
如果你想开发自己的软件产品
关于作者:一个企业家、web开发人员。最先开始创建了Lionite,一个web开发商店,现在我是BinPress的CTO,一个源码发现和源码市场的平台。快速总结:如果你喜欢这个当自己老板的主意(我当然喜欢),你可以抓住机会创建属于你自己的产品——一个你可以完全掌握创建她的方向的产品,你不需要和别人有任何的妥协,并且你完全沉浸于创建她的快乐,而不是像工作时的按时付费的那种感觉。这可以是一个Web
Android获取通讯录中的所有联系人工具类
一个获取通讯录中所有联系人的工具类,存储在Map中,Map中key为手机号,value为联系人的姓名。还提供了一个根据手机号查询该手机号的联系人姓名的功能。 注:同一联系人可以存储多个手机号,但是同一手机号存储为多个联系人姓名的这里做了处理,只存储一个在map中 具体的代码如下: package com.example.mycontact; import java.util.HashMap
zynq开发中如何向文件系统里添加自己的程序
如何想往zynq开发板里的文件系统里添加一些自己的驱动或可执行文件时,可以做如下操作:1.解压uramdisk.image.gz,去掉64字节的头部命令:dd if=./uramdisk.image.gz of=./ramdisk.image.gz bs=64 skip=1 count=131072解压后会生成ramdisk.image.gz2.解压ramdisk.image.gz#gunzip r
Android读取联系人的姓名及电话号码
Android中联系人的信息是通过ContentProvider来供外部应用获取的,我们使用时只需根据系统联系人ContentProvider的Uri即可获取所需数据。下面讲解如何获取联系人的姓名及电话号码,别的数据如邮箱、照片等数据的获取都可使用此方式。
给自己的应用程序添加系统偏好设置
在传统的桌面应用程序中,偏好设置是一些专门面向应用程序的设置,用于配置应用程序的行为和外观。iPhone OS也支持应用程序偏好设置,但并不将它作为应用程序整体的一部分。在iPhone OS上,应用程序级别的偏好设置并不由各个程序本身的定制界面来显示,而是由系统提供的Settings程序统一显示。 为了将定制的应用程序偏好设置集成到Settings程序中,您必须在应用程序包的顶级目录中包含一个特
android之选择联系人并返回电话号码
在跟着这个教程联系的时候,它所用到的选择联系人方式是自己从数据库里把联系人读取出来,然后用listview显示,选择后返回手机号码, 这样做在点击选择联系人的时候,需要时间去加载,并且显示出来的联系人好像并不全, 总之感觉不好,想通过调用系统联系人的方式选择,不用自己去处理界面。 结果还不错: MainActivity: package jason.pickcontact; imp