`
Darar
  • 浏览: 87827 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android Contacts的使用(二)

 
阅读更多
API For 1.6 and Before  1.6之前的版本

Granting Access 授予权限
<uses-permission android:name="android.permission.READ_CONTACTS" />

Querying the contact database 联系人数据库查询


Retrieving Contact Details 获取联系方式


本的联系人信息存储在联系人表中,而详细信息存储在个人表中。在 Android1.x 中查询的联系人记录数据库的URI是People.CONTENT_URI。

package com.test;import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;import android.os.Bundle;
import android.provider.Contacts.People;
public class TestContacts extends Activity {    
@Override    public void onCreate(Bundle savedInstanceState) { 
       super.onCreate(savedInstanceState);        
       setContentView(R.layout.main);       
       ContentResolver cr = getContentResolver();        
       Cursor cur = cr.query(People.CONTENT_URI, null, null, null, null);        
        if(cur.getCount()>0){           
          while (cur.moveToNext()) {                
             String id = cur.getString(cur.getColumnIndex(People._ID));                
             String name = cur.getString(cur.getColumnIndex(People.DISPLAY_NAME));            
          }        
}         
}
}


Phone Numbers 电话号码

查询的URI换成Contacts.Phones.CONTENT_URI。
if (cur.getInt(cur.getColumnIndex(People.PRIMARY_PHONE_ID)) > 0) {                    
        Cursor pCur = cr.query(Contacts.Phones.CONTENT_URI,null,                            Contacts.Phones.PERSON_ID +" = ?",new String[]{id}, null);
         int i=0;                    
         int pCount = pCur.getCount();                    
         String[] phoneNum = new String[pCount];                      String[] phoneType = new String[pCount];                    
 while (pCur.moveToNext()) {   
          phoneNum[i] = pCur.getString(pCur.getColumnIndex(Contacts.Phones.NUMBER));         
           phoneType[i] = pCur.getString(pCur.getColumnIndex(Contacts.Phones.TYPE));                                                         i++;                    
}    
}

以存储多个电话号码,我们需要遍历返回的结果。查询除了返回电话号码外还返回了其他(家庭,工作,手机等)类型。

Email Addresses 邮件地址
  
Cursor emailCur = cr.query(Contacts.ContactMethods.CONTENT_EMAIL_URI,null,                        Contacts.ContactMethods.PERSON_ID + " = ?",new String[]{id}, null);                
   while (emailCur.moveToNext()) {                    
 // This would allow you get several email addresses                }                 
    emailCur.close();  
   

Notes 注释
  
为每个联系人附加自定义注释。注释存储在联系人记录中,并通过People.NOTES存储的数据进行访问。

String notes=cur.getString(cur.getColumnIndex(People.NOTES));

Postal Addresses 邮政地址
每个联系人都可以存储多个邮政地址。地址存储在联系方式表中,要获取数据,需要有次要条件。添加适配Contacts.ContactMethods.CONTENT_POSTAL_ITEM_TYPE的条件Contacts.ContactMethods.KIND来访问Contacts.ContactMethods.CONTENT_URI传递过来的地址。

String addrWhere = Contacts.ContactMethods.PERSON_ID                 + " = ? AND " + Contacts.ContactMethods.KIND + " = ?";                
 String[] addrWhereParams = new String[]{id,                     Contacts.ContactMethods.CONTENT_POSTAL_ITEM_TYPE};                         Cursor addrCur = cr.query(Contacts.ContactMethods.CONTENT_URI,                             null, addrWhere, addrWhereParams, null);                 while(addrCur.moveToNext()) {                    String addr = addrCur.getString(                               addrCur.getColumnIndex(Contacts.ContactMethodsColumns.DATA));                    String type = addrCur.getString(                               addrCur.getColumnIndex(Contacts.ContactMethodsColumns.TYPE));                }                 addrCur.close();
分享到:
评论

相关推荐

    Android Contacts查询全过程

    在深入探讨《Android Contacts查询全过程》这一主题时,我们首先需理解其核心概念与操作流程。此篇文章聚焦于Android系统中联系人数据的查询机制,尤其是通过代码层面解析这一过程,为开发者提供深入理解与实践指导...

    android Contacts 源码eclipse编译

    android Contacts 源码eclipse编译Contacts 联系人 eclipse 源码此为android Contacts 联系人源码在eclipse编译的APK。 可以运行在 android4.4 以及一下的系统中,本人通过大量修改 直接安装运行即可。

    Android4.4Contacts源码

    在Android 4.4系统中,Contacts应用是用户管理联系人的重要组成部分。它不仅负责显示、编辑和组织联系人的信息,还与其他系统服务如Google账户同步、来电显示等功能紧密协作。这里我们将深入探讨Android 4.4 ...

    Android4.1.1原版Contacts代码

    在Android 4.1.1 Contacts代码中,可以看到许多性能优化的实践,如使用CursorLoader异步加载联系人数据,避免阻塞主线程;使用SparseArray存储和查找联系人数据,减少内存消耗;以及在数据处理过程中采用批处理操作...

    android Contacts源码

    在Android系统中,联系人应用(Contacts)是用户管理个人联系信息的核心组件。它负责存储、检索和组织用户的电话号码、电子邮件地址以及其他联系方式。这里我们深入探讨“android Contacts”源码,这是一份非常有...

    android Contacts 通讯录源码

    Android的同步框架由`SyncAdapter`实现,Contacts应用使用`ContactsSyncAdapter`进行后台数据同步。通过源码,我们可以学习如何实现同步策略,如何在后台更新联系人数据,并处理网络和电源状态的变化。 6. **...

    Android5.0 Contacts联系人源码

    Android 5.0对联系人应用进行了性能优化,例如使用CursorLoader减少内存占用,利用异步任务处理大数据集,以及利用硬件加速提升UI渲染速度。 9. **隐私与安全** 联系人应用尊重用户的隐私,只有在用户明确授权的...

    Android代码-Contacts

    Android Contacts API. Quick Start Initialize Contacts Library public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); Contacts.initialize(this); } ...

    安卓Android源码——Contacts.rar

    在Contacts源码中,我们可以看到如何创建和操作联系人表,以及如何使用ContentProvider来封装数据库操作,提供统一的数据访问接口。 ContentProvider是Android系统中数据共享的关键组件,它使得不同的应用能够安全...

    android contacts

    "android contacts"这一主题涉及了高效地处理联系人数据的关键技术,包括高效的联系人分组读取、完整的联系人列表展示、SQLite数据库的运用以及通过ksoap2调用Web服务。接下来,我们将详细探讨这些知识点。 1. **高...

    Android 源码分析_Contacts

    在Android系统中,联系人应用(Contacts)是用户与他人通信信息的核心接口。它整合了电话簿、电子邮件、社交媒体等多种联系方式,为用户提供了一个统一的管理界面。本篇将深入探讨Android源码,揭示Contacts应用的...

    android系统模块之Contacts的学习笔记

    Android系统使用ContentProvider作为数据存储和共享的统一接口,Contacts Provider是负责管理联系人数据的ContentProvider。开发者可以通过ContentResolver查询、插入、更新和删除联系人信息,实现与Contacts数据库...

    联系人(com.android.contacts).bak

    联系人(com.android.contacts).bak

    Android 系统应用 Contacts 源码

    在Android系统中,联系人应用Contacts是用户与设备上的联系信息进行交互的主要界面。源码分析可以帮助我们深入了解其内部工作原理,以及如何自定义或优化这个应用。2013年11月份的Contacts源码提供了对Android 4.x...

    Android Contacts之二根据4.4实现的联系人列表特效 A

    4. **Animation**:为了实现"特效",开发者可能会使用Android的动画库,如Alpha、Scale、Translation等,为列表项添加淡入淡出、滑动等效果。 5. **SwipeRefreshLayout**:在顶部添加下拉刷新手势,让用户能够轻松...

    Android Contacts之三自定义的联系人列表特效 A

    总的来说,"Android Contacts之三自定义的联系人列表特效 A" 涉及到的知识点包括:自定义ListView/RecyclerView布局、使用ContactsContract查询联系人数据、实现Sidebar导航、滑动手势处理、动画效果添加、以及优化...

    Android Contacts之三自定义的联系人列表特效 b

    在这个项目"Android Contacts之三自定义的联系人列表特效 b"中,开发者实现了一系列增强用户体验的功能,包括滑动特效、中文索引以及关键字搜索。下面我们将详细探讨这些知识点。 1. **滑动特效**:滑动特效是提升...

    android contacts codes

    在"android_packages_apps_Contacts"源码中,可以找到关于如何创建、查询和更新联系人表的SQL语句,以及如何使用ContentProvider进行数据操作。 三、ContentProvider ContentProvider是Android系统中数据共享的接口...

    AndroidContacts,安卓工作室联系方式.zip

    二、AndroidContacts项目结构 AndroidContacts-master作为项目的主要目录,通常包含了项目的源代码、资源文件、构建脚本以及README文档等。源代码部分可能包括多个模块,如UI界面、数据访问层(DAL)和业务逻辑层...

    Working With Android Contacts

    在Android 1.6及更低版本中,接触API使用的是`Contacts`和`ContactsContract`的旧版。主要区别在于URI和数据模型。例如,获取所有联系人的URI是`ContactsgetContentResolver().query(ContactsContract....

Global site tag (gtag.js) - Google Analytics