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. cocos2d-x动画加速与减速

    动画是游戏的必定要素之中的一个,在整个游戏过程中,又有着加速.减速动画的需求.以塔防为样例,布塔的时候希望可以将游戏减速,布好塔后,则希望能将游戏加速:当某个怪被冰冻后,移动速度减缓,而其它怪的移动速 ...

  2. Android只播放gif动画

    使用easygifanimator软件把gif动画打散为图片. 第一步:先上图片素材,以下素材放到res/drawable目录下: 转:http://blog.csdn.net/aminfo/arti ...

  3. linux常用C函数目录

    字符测试篇 isalnum isalpha isascii iscntrl isdigit isgraphis islower isprint isspace ispunct isupper isxd ...

  4. C++中new的用法及显示调用析构函数

    最近被问到了C++内存池的问题,其中不免涉及到在指定内存地址调用对象构造函数以及显示调用对象析构函数的情况. C++中new的用法 new是C++中用于动态内存分配的运算符,在C语言中一般使用mall ...

  5. HDU4183 起点到终点再到起点 除起点每点仅经过一次 网络流

    题意: T个测试数据 n个圆 下面 fre x y r 表示圆的频率 坐标和半径 要求: 从频率为400(最小的) 圆 走到频率为789(最大)的圆,再走回来,除起点每个点只能经过一次 问这样的路径是 ...

  6. mahout源码分析之DistributedLanczosSolver(六)完结篇

    Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit. 接上篇,分析完3个Job后得到继续往下:其实就剩下两个函数了: List<Map.Entry< ...

  7. Python并发编程-redis-3.0.5 源码安装

    1.简介 Remote Dictionary Server(Redis)是一个基于 key-value 键值对的持久化数据库存储系统.redis 和 Memcached 缓存服务很像,但它支持存储的 ...

  8. IOS之导航控制器传值

    UITableView有两种风格:UITableViewStylePlain和UITableViewStyleGrouped.这两者操作起来其实并没有本质区别,只是后者按分组样式显示前者按照普通样式显 ...

  9. 【BZOJ2662】【BeiJing wc2012】冻结 分层图 裸的!

    我都不好意思发题解了,看这篇博吧.(飞行路线的,基本一样) http://blog.csdn.net/vmurder/article/details/40075989 同学做了好久.我害怕题里有坑,又 ...

  10. jsp链接sqlserver连不上

    有时候出现程序没有错误,但是就是连不上数据库的毛病,有时候是链接端口错误. private String url="jdbc:microsoft:sqlserver://localhost: ...