`
jinvasshole
  • 浏览: 771787 次
文章分类
社区版块
存档分类
最新评论

获取联系人名称及全部电话的实例

 
阅读更多

CODE:

String[] projection = new String[]{
People._ID,
People.NAME
};

Uri peopleUri = People.CONTENT_URI;
Log.d( TAG, "peopleUri: " + peopleUri );
Cursor peopleCursor = managedQuery( peopleUri, projection, null, null, People.DEFAULT_SORT_ORDER );

if( peopleCursor == null ){
Log.e( TAG, "peopleCursor is null");
return false;
}

if( peopleCursor.moveToFirst()){

boolean isAfterLastPeople = peopleCursor.isAfterLast();
while( !isAfterLastPeople ){
String name = peopleCursor.getString(peopleCursor.getColumnIndexOrThrow( People.NAME ));
Log.d( TAG, "name: " + name );

Long personId = peopleCursor.getLong( peopleCursor.getColumnIndexOrThrow(People._ID) );
Uri personUri = ContentUris.withAppendedId(peopleUri, personId );
Uri phoneUri= Uri.withAppendedPath( personUri, People.Phones.CONTENT_DIRECTORY );
Log.d( TAG, "phoneUri: " + phoneUri );

Cursor phoneCursor = managedQuery( phoneUri, null, null, null, People.Phones.DEFAULT_SORT_ORDER );
if( phoneCursor == null ){
Log.e( TAG, "phoneCursor is null");
return false;
}

if( phoneCursor.moveToFirst()){
boolean isAfterLastPhone = phoneCursor.isAfterLast();
while( !isAfterLastPhone ){
String number= phoneCursor.getString( phoneCursor.getColumnIndexOrThrow( PhonesColumns.NUMBER));
String type = phoneCursor.getString( phoneCursor.getColumnIndexOrThrow( PhonesColumns.TYPE ));

Log.d( TAG, "number:" + number );
Log.d( TAG, "type:" + type );

phoneCursor.moveToNext();
isAfterLastPhone = phoneCursor.isAfterLast();
}
}

peopleCursor.moveToNext();
isAfterLastPeople = peopleCursor.isAfterLast();
}
分享到:
评论

相关推荐

    Android开发实验---通讯录.docx

    关于通讯录获取联系人信息以及联系人信息的存储结构的分析。 2. 解决添加联系人的表中添加数据以及读取已保存的数据 3. 实现通讯录的基本功能的具体实现。 4. 对通讯录界面的具体设计,给人一种方便的操作通道。 5....

    Android ContentProvider获取手机联系人实例

    在做项目的时候,因为要用到我们自动获取联系人的姓名和电话,就想到了ContentProvider分享数据的功能,这样做既节省了时间,也减少了我们输入错误号码的几率,所以,想在这里把小demo分享给大家,方便以后要用的...

    Android获取手机联系人的方法

    一、获取手机联系人姓名及手机号 //跳转到系统联系人应用 Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); try { startActivityForResult(intent, Contacts1Request...

    黑马程序员 安卓学院 万元哥项目经理 分享220个代码实例

    |--电话簿读取联系人信息 |--监听 |--监听之CheckBox是否选中监听 |--监听之EditText内容变化监听 |--监听之GridView条目点击监听 |--监听之ListView条目点击事件监听 |--监听之ListView滑动监听 |--监听之单击监听...

    入门学习Linux常用必会60个命令实例详解doc/txt

    在使用mount这个指令时,至少要先知道下列三种信息:要加载对象的文件系统类型、要加载对象的设备名称及要将设备加载到哪个目录下。 (1)Linux可以识别的文件系统 ◆ Windows 95/98常用的FAT 32文件系统:vfat ;...

    android开发使用例子

    //info.id联系人ID Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setData(personUri); startActivity(intent); 在进行Android开发的过程中,免不了,要开发TCP/UDP通讯的...

    Android 通讯录 Android contact源代码

    摘要:Java源码,Android源码,通讯录 Android contact通讯录实例,比较不错的例子,来自书中的完整实例,Android手机读取联系人信息、显示、保存、编辑联系人,多卡同时读取联系人等,涉及要点:删除指定数据列、URI...

    PHP 面向对象技术(全面讲解).txt

    当于实例出来3 个人来,每个人之间是没有联系的,只能说明他们都是人类,每个人都有自己的姓 名,性别和年龄的属性,每个人都有说话和走路的方法,只要是类里面体现出来的成员属性和成员 方法,实例化出来的对象里面...

    Android 开发技巧

    9.12、获取应用程序的名称,包名,版本号和图标 212 9.13、调用ANDROID INSTALLER 安装和卸载程序 215 9.14、后台监控应用程序包的安装&卸载 216 9.15、显示应用详细列表 224 9.16、寻找应用 224 9.17、注册一个...

    Android开发资料合集-World版!

    9.12、获取应用程序的名称,包名,版本号和图标 212 9.13、调用ANDROID INSTALLER 安装和卸载程序 215 9.14、后台监控应用程序包的安装&卸载 216 9.15、显示应用详细列表 224 9.16、寻找应用 224 9.17、注册一个...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    第3篇为项目实战篇,主要包括讯友联系人管理模块、播客视频管理模块、博客管理模块、明日知道论坛管理模块等4个小型项目:第4篇为商业系统篇,主要包括一个大型的商业项目,即天下淘网上购物商城系统。 《Java Web...

    疯狂Android讲义源码

     联系人 355  9.2.2 使用ContentProvider管理  多媒体内容 360  9.3 实现ContentProvider 364  9.3.1 创建ContentProvider的步骤 364  9.4 监听ContentProvider的数据  改变 370  9.4.1 ContentObserver简介...

    MYSQL中文手册

    5.2.1. 用MySQL实例管理器启动MySQL服务器 5.2.2. 连接到MySQL实例管理器并创建用户账户 5.2.3. MySQL实例管理器命令行选项 5.2.4. MySQL实例管理器配置文件 5.2.5. MySQL实例管理器识别的命令 5.3. mysqld:...

    超级有影响力霸气的Java面试题大全文档

    抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承:  继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确...

    java 面试题 总结

    抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性...

    BlazorLaunchPad:用于创建基于Blazor的项目的入门解决方案模板

    Blazor LaunchPad 用于创建基于Blazor的项目...将基于联系人的示例代码替换为您自己的逻辑。 干净的代码 为了保持一致,该项目使用Visual Studio扩展来获取干净的代码: 解决方案文件夹包含其基本配置。 -Rosyln分析

    Spire.Pdf.zip 读取PDF文件中的信息

    .replace("联系电话", ";联系电话:") .replace("工作单位", ";工作单位:") .replace("岗位名称", ";岗位名称:") .replace("加入华能", ";加入华能日期:") .replace(" 日期", "")...

Global site tag (gtag.js) - Google Analytics