全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Android编程操作手机通讯录的方法示例

本文实例讲述了Android编程操作手机通讯录的方法。分享给大家供大家参考,具体如下:

手机通讯录的操作是经常被用到的,例如添加联系人,删除联系人或者取得联系人信息。类似的操作还有收藏夹的操作,下面就针对通讯录的操作来做个小例子。同样的这次也会使用到内容提供者的知识。

1. 要操作通信录就要得到授权,也就是读或者写通讯录的权力。这里也需要使用Junit

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="org.lxh.contact" android:versionCode="1" android:versionName="1.0">
  <application android:icon="@drawable/icon" android:label="@string/app_name">
    <uses-library android:name="android.test.runner" />
  </application>
  <uses-sdk android:minSdkVersion="8" />
  <instrumentation android:name="android.test.InstrumentationTestRunner"
    android:targetPackage="org.lxh.contact" android:label="TestforMyApp" />
  <uses-permission android:name="android.permission.READ_CONTACTS" />
  <uses-permission android:name="android.permission.WRITE_CONTACTS" />
</manifest>

2. 开始取得通讯录里的内容,主要就是名称,号码,邮箱

package org.lxh.contact;
import android.content.ContentResolver;
import android.database.Cursor;
import android.net.Uri;
import android.provider.ContactsContract;
import android.test.AndroidTestCase;
import android.util.Log;
public class TestContact extends AndroidTestCase{ //junit测试类
 public void testFind() throws Throwable{
   Uri uri=ContactsContract.Contacts.CONTENT_URI; //通讯录的uri,这是推荐的常量
   ContentResolver resol=this.getContext().getContentResolver();
   Cursor cursor=resol.query(uri, null, null, null, null);
   //取得通讯录里的内容
   while(cursor.moveToNext()){
     StringBuffer buf=new StringBuffer(); //实例化一个可变字符串StringBuffer
     //取得联系人id,每个条目都有一个唯一的id(主键)
     String contactId=cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
     //取得联系人的显示名称
     String name=cursor.getString(cursor.getColumnIndex(ContactsContract.Data.DISPLAY_NAME));
     buf.append("id:"+contactId).append(",name:"+name);
     //取得联系人的号码
     Cursor phone=resol.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID+" = "+contactId,null,null);
     while(phone.moveToNext()){
       String phonum=phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
       buf.append(phonum);
     }
     phone.close();
     //取得联系人的email
     Cursor email=resol.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI ,null,ContactsContract.CommonDataKinds.Email.CONTACT_ID+" = "+contactId,null,null);
     while(email.moveToNext()){
       String mail=email.getString(email.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
       buf.append(",mail:"+mail);
     }
     email.close();
     Log.i("TestContact",buf.toString());
   }
   cursor.close();
 }
}

看这个查询过程可以知道,其实这里有2张表,一张存着id和name,一张存着号码,邮箱之类的信息。id为主键,后面的表用它作为外键。至于删除和其他操作你们可以自己看文档。我这里就不说了。

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android布局layout技巧总结》、《Android视图View技巧总结》、《Android编程之activity操作技巧总结》、《Android资源操作技巧汇总》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。


# Android  # 操作  # 手机  # 通讯录  # android如何取得本地通讯录的头像的原图的实现代码  # Android读取手机通讯录联系人到自己项目  # Android Loader的使用以及手机通讯录的获取方法  # Android仿手机通讯录地址选择功能  # android仿微信通讯录搜索示例(匹配拼音  # 字母  # 索引位置)  # Android开发之自定义view实现通讯录列表A~Z字母提示效果【附demo源码下载】  # Android个人手机通讯录开发详解  # 主键  # 进阶  # 这是  # 操作技巧  # 都有  # 相关内容  # 就不  # 说了  # 感兴趣  # 收藏夹  # 给大家  # 做个  # 会使  # 更多关于  # 用它  # 所述  # 程序设计  # 文档  # 讲述了  # drawable 


相关文章: 如何通过可视化优化提升建站效果?  视频网站制作教程,怎么样制作优酷网的小视频?  如何在万网ECS上快速搭建专属网站?  网站好制作吗知乎,网站开发好学吗?有什么技巧?  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  如何在景安云服务器上绑定域名并配置虚拟主机?  盐城做公司网站,江苏电子版退休证办理流程?  黑客如何利用漏洞与弱口令入侵网站服务器?  c# 在高并发场景下,委托和接口调用的性能对比  网页设计与网站制作内容,怎样注册网站?  建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略  ,南京靠谱的征婚网站?  佛山网站制作系统,佛山企业变更地址网上办理步骤?  如何使用Golang安装API文档生成工具_快速生成接口文档  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  已有域名能否直接搭建网站?  定制建站流程解析:需求评估与SEO优化功能开发指南  建站之星导航配置指南:自助建站与SEO优化全解析  企业微网站怎么做,公司网站和公众号有什么区别?  如何通过商城自助建站源码实现零基础高效建站?  高端智能建站公司优选:品牌定制与SEO优化一站式服务  官网建站费用明细查询_企业建站套餐价格及收费标准指南  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  如何在宝塔面板中创建新站点?  全景视频制作网站有哪些,全景图怎么做成网页?  如何快速搭建安全的FTP站点?  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  制作网站的公司有哪些,做一个公司网站要多少钱?  建站之星安全性能如何?防护体系能否抵御黑客入侵?  教程网站设计制作软件,怎么创建自己的一个网站?  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  长沙做网站要多少钱,长沙国安网络怎么样?  婚礼视频制作网站,学习*后期制作的网站有哪些?  如何通过老薛主机一键快速建站?  高性价比服务器租赁——企业级配置与24小时运维服务  如何通过FTP空间快速搭建安全高效网站?  如何在IIS中配置站点IP、端口及主机头?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  建站之星安装后如何自定义网站颜色与字体?  广州顶尖建站服务:企业官网建设与SEO优化一体化方案  赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?  定制建站策划方案_专业建站与网站建设方案一站式指南  如何选择高性价比服务器搭建个人网站?  如何在服务器上配置二级域名建站?  如何在局域网内绑定自建网站域名?  建站主机选购指南与交易推荐:核心配置解析  建站之星在线客服如何快速接入解答?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  黑客入侵网站服务器的常见手法有哪些?  如何选择美橙互联多站合一建站方案? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。