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. TPL中限制进程数量

    The MaxDegreeOfParallelism sets the maximum number of simultaneous threads that will be used for the ...

  2. Go 语言简介(上)— 语法

    周末天气不好,只能宅在家里,于是就顺便看了一下Go语言,觉得比较有意思,所以写篇文章介绍一下.我想写一篇你可以在乘坐地铁或公交车上下班时就可以初步了解一门语言的文章.所以,下面的文章主要是以代码和注释 ...

  3. 数学图形之莫比乌斯带(mobius)

    莫比乌斯带,又被译作:莫比斯环,梅比斯環或麦比乌斯带.是一种拓扑学结构,它只有一个面(表面),和一个边界.即它的正反两面在同一个曲面上,左右两个边在同一条曲线上.看它的名字很洋气,听它的特征很玄乎,实 ...

  4. vue设置多入口教程

    官方脚手架搭建vue项目 在src 目录下复制app内容创建test.vue,demo.vue, main.js复制main.js内容demo.js,test.js,修改一下内容 在根目录下创建tes ...

  5. mysql09---sql语句优化

    Sql语句本身的优化 问题是: 如何从一个大项目中,迅速的定位执行速度慢的语句. (定位慢查询) 首先我们了解mysql数据库的一些运行状态如何查询(比如想知道当前mysql运行的时间/一共执行了多少 ...

  6. asp.net中使用ueditor 1.3.6上传图片问题

    在asp.net中使用ueditor 1.3.6版本上传图片时,出现上传成功但是,图片无法正常显示的问题,解决方法如下: 只需要将imageUp.ashx中的info = up.upFile(cont ...

  7. iOS开发-多线程之GCD(Grand Central Dispatch)

    Grand Central Dispatch(GCD)是一个强有力的方式取执行多线程任务,不管你在回调的时候是异步或者同步的,可以优化应用程序支持多核心处理器和其他的对称多处理系统的系统.开发使用的过 ...

  8. Java基础(五):数组和Java方法

    一.Java数组: 1.声明数组变量: 首先必须声明数组变量,才能在程序中使用数组.下面是声明数组变量的语法:注意: 建议使用 dataType[] arrayRefVar 的声明风格声明数组变量. ...

  9. C# 特性(Attribute)(一)

    特性(Attributes)是一种崭新的声明性信息.我们不仅可以通过特性来定义设计层面的信息(例如help file, URL for documentation)以及运行时(run-time)信息( ...

  10. ComboBoxEdit 数据绑定 使用模板

    1)定义模板资源 <UserControl.Resources> <local:StatusConvertor x:Key="StatusConvertor"&g ...