android.provider.ContactsContract.Contacts

对应contacts数据表。RawContacts的一个聚合(aggregate)代表同一个人。每个人在数据表contacts中有一个记录。

Operations
Insert

Contact不能直接/显式创建。插入一个RawContact时,provider首先查找是否存在一个Contact表示同一个人。如果存在,provider将Contacts._ID赋值给RawContacts.CONTACT_ID。如果不存在,provider插入一个新的Contact记录,并且将Contacts._ID赋值给RawContacts.CONTACT_ID

Update

在Contact中,只有部分字段可以修改:TIMES_CONTACTED, LAST_TIME_CONTACTED, STARRED, CUSTOM_RINGTONE, SEND_TO_VOICEMAIL。修改其中任一字段会修改contact的所有成员(RawContact)。

Delete

删除Contact需谨慎。删除聚合contact会删掉它的所有成员(RawContacts)。SyncAdapter将通知删除相关的RawContacts。

Query 

读取某个特定的contact(我的理解是:已知ContactId),建议使用CONTENT_LOOKUP_URI

根据电话号码查找contact,建议使用优化过的PhoneLookup.CONTENT_FILTER_URI

根据部分名字查找contact,建议使用CONTENT_FILTER_URI

根据类似email地址、昵称等数据查找contact,建议查找ContactsContract.Data表。结果含有ContactId、姓名等。

Columns

Contacts

译文说明:在本文中将constituent raw contacts翻译为“成员RawContact”。

 

数据类型

字段名

是否只读

备注

long

_ID

只读

Row ID. 建议使用LOOKUP_KEY

String

LOOKUP_KEY

只读

用于查找contact。在聚合或同步操作中RowId可能发生变化。

long

NAME_RAW_CONTACT_ID

只读

The ID of the raw contact that contributes the display name to the aggregate contact. During aggregation one of the constituent raw contacts is chosen using a heuristic: a longer name or a name with more diacritic marks or more upper case characters is chosen.

String

DISPLAY_NAME_PRIMARY

只读

Contact的display-name。属性值来源:RawContactId等于NAME_RAW_CONTACT_ID的RawContact的display-name。

long

PHOTO_ID

只读

外键,引用ContactsContract.Data表中拥有photo数据的那条记录。记录的Mime-Type是CommonDataKinds.Photo.CONTENT_ITEM_TYPE。聚合值是Mime-Type等于CommonDataKinds.Photo.IS_SUPER_PRIMARY那个值。

int

IN_VISIBLE_GROUP

只读

contact是否在UI上可见。1 - 至少一个RawContact可见。0 - 其他。

int

HAS_PHONE_NUMBER

只读

contact是否至少有一个电话号码。1 - 至少有一个电话号码。0 - 其他。

int

TIMES_CONTACTED

可读,可写

Contact的联系次数。赋值操作自动改变所有成员RawContact的属性。聚合操作时,自动计算:取所有成员RawContact中最大的联系次数。

long

LAST_TIME_CONTACED

可读,可写

Contact的最近联系时间。赋值时TIMES_CONTACTED自增。赋值操作自动改变所有成员RawContact的属性。聚合操作时,自动计算:取所有成员RawContact中最近的联系时间。

int

STARRED

可读,可写

Contact是否favorite。1 - favorite。0 - 其他。聚合操作时,自动计算:任一成员RawContact是favorite,那么这个属性就赋值1。赋值操作自动改变所有成员RawContact的属性。

String

CUSTOM_RINGTONE

可读,可写

给Contact设定的铃声。通常情况是从activity中返回的URI,且activity由android.media.RingtoneManager.ACTION_RINGTONE_PICKER启动。

int

SEND_TO_VOICEMAIL

可读,可写

来自Contact的呼叫是否应该直接转发到voiceMail。1 - 是。0 - 否。聚合操作时,自动计算:所有成员RawContact的值是1,那么这个属性赋值1。赋值操作自动改变所有成员RawContact的属性。

int

CONTACT_PRESENCE

只读

Contact IM呈现出来的状态(我理解为:离线、在线、离开、忙碌等)。聚合值为所有成员RawContact的highest presence。provider可能没有选择将这个属性值持久存储。期望是presence状态会有规律性的更新。

String

CONTACT_STATUS

只读

Contact的最近的状态。聚合值取所有成员RawContac中最近的值。

long

CONTACT_STATUS_TIMESTAMP

只读

产生(插入或更新)最近状态的时间。

String

CONTACT_STATUS_RES_PACKAGE

只读

包括当前状态label和icon的包。

long

CONTACT_STATUS_LABEL

只读

The resource ID of the label describing the source of contact status, e.g. "Google Talk". This resource is scoped by the CONTACT_STATUS_RES_PACKAGE.

long

CONTACT_STATUS_ICON

只读

The resource ID of the icon for the source of contact status. This resource is scoped by the CONTACT_STATUS_RES_PACKAGE.

Android API之android.provider.ContactsContract.Contacts的更多相关文章

  1. Android API之android.provider.ContactsContract.RawContacts

    android.provider.ContactsContract.RawContacts Constants for the raw contacts table, which contains o ...

  2. Android API之android.provider.ContactsContract

    android.provider.ContactsContract ContactsContract是联系人provider和app的contract.定义了已支持的URL和column.取代了之前的 ...

  3. Android API之android.provider.ContactsContract.Data

    android.provider.ContactsContract.Data Constants for the data table, which contains data points tied ...

  4. 【Android API】Android 4.1 API官方文档详解

    原文:http://android.eoe.cn/topic/summary 翻译:[eoeAndroid原创团队]kris.流风而逝.贼寇在何方.snowxwyo.lsy4833406 更新日期:2 ...

  5. Android API之android.content.BroadcastReceiver

    android.content.BroadcastReceiver Base class for code that will receive intents sent by sendBroadcas ...

  6. Android API之android.os.Parcelable

    android.os.Parcelable Interface for classes whose instances can be written to and restored from a Pa ...

  7. Android API之android.widget.Filterable

      android.widget.Filterable 定义了一种可过滤的行为.Filterable接口通常有android.widget.Adapter来实现.接口Filterable中有个抽象方法 ...

  8. Android API之android.content.AsyncQueryHandler

    android.content.AsyncQueryHandler A helper class to help make handling asynchronous ContentResolver ...

  9. Android API之android.view.View.MeasureSpec

    android.view.View.MeasureSpec MeasureSpec是View的内部类 public static class MeasureSpec MeasureSpec封装从par ...

随机推荐

  1. Java 中的 int 与 Integer 用于 List<Integer> 时,以及通过打印变量检測程序执行和函数调用次数计数

    总结一下近期做的东西中遇到的问题 1. Java 中的 int 与 Integer 用于 List<Integer>  时 两者之间的关系都是非常清楚的.int 是基本数据类型,存储的是值 ...

  2. javascript级联菜单,数据从数据库中获取

    1.html代码: <%@ page contentType="text/html; charset=gb2312" %> <%@ page import=&qu ...

  3. java类与继承的执行顺序

    1.子类 public class TestClassLife extends TestClassLifeSuper { public TestClassLife() { System.out.pri ...

  4. 用java解析在OpenStreetMap上下载的地图数据(SAX版,适合比较大的xml文件)

    java程序如下: package gao.map.preprocess; import java.io.BufferedWriter; import java.io.File; import jav ...

  5. 编写和执行C#代码的插件:CS-Script for Notepad++

    这个插件可以方便得让您在Notepad++编辑器中编辑和执行C#代码(脚本).它具备通用的C#智能感知和项目任务管理功能,方式非常类似于MS Visual Studio.除了这一点,它提供了通用的调试 ...

  6. ListView 设置列对齐方式

    <ListView.Resources> <Style TargetType="ListViewItem"> <Setter Property=&qu ...

  7. 【Struts2学习笔记(9)】单文件上传和多文件上传

    (1)单文件上传 第一步:在WEB-INF/lib下增加commons-fileupload-1.2.1.jar.commons-io-1.3.2.jar. 这两个文件能够从http://common ...

  8. 部署项目Nginx+Tornado+Supervisor

    http://www.jianshu.com/p/9bebb99368ea Tornado Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻 ...

  9. C#.NET常见问题(FAQ)-在VS程序如何取消.vshost的进程

    双击执行一个EXE程序,会有两个进程,程序关闭之后,貌似只能关闭你的程序,附加的vshost.exe仍然存在   在调试页面,改成release,同时取消最后一项启用承载进程   在生成页面,将高级选 ...

  10. 【android】模拟点击某个指定坐标作用在View上

    /** * 模拟点击某个指定坐标作用在View上 * @param view * @param x * @param y */ public void clickView(View view,floa ...