我有Android中特定联系人的ID和查找键。
由此,我需要提取用户保存的所有细节。详细信息包括联系人,电子邮件ID,地址,电话号码,传真,Facebook ID等。
这是文档中给出的
投射回收所有数据:
private static final String PROJECTION =
{
Data._ID,
Data.MIMETYPE,
Data.DATA1,
Data.DATA2,
Data.DATA3,
Data.DATA4,
Data.DATA5,
Data.DATA6,
Data.DATA7,
Data.DATA8,
Data.DATA9,
Data.DATA10,
Data.DATA11,
Data.DATA12,
Data.DATA13,
Data.DATA14,
Data.DATA15
};
但我怎么知道哪个字段与哪个字段有关?这些DATA {}字段是通用字段,文档有点令人困惑。任何人都可以帮我解析这个投影给出的光标吗?
以下是我所指的documentation。
答案 0 :(得分:0)
您需要先检查Data.MIMETYPE
,然后根据mimetype,您可以推断出哪个数据值位于DATA
项目中。
例如,如果MIMETYPE
为CommonDataKinds.Phone.CONTENT_ITEM_TYPE
,那么您可以检查此表中描述的别名以了解这些值:
https://developer.android.com/reference/android/provider/ContactsContract.CommonDataKinds.Phone#column-aliases
或者,您可以将PROJECTION
更改为:
private static final String PROJECTION =
{
Data._ID,
Data.MIMETYPE,
Phone.NUMBER,
Phone.TYPE,
Email.ADDRESS,
Email.TYPE,
...
}
由于这些别名转换为同一组常量(DATA1,DATA2等),性能不会受到影响,代码可能更具可读性。