我还想使用其中一些字段(2.2 版),但 ContactsContract.DataColumnsWithJoins.DISPLAY_NAME_ALTERNATIVE 静态字符串不可见。所以我直接将它的值用于查询,“display_name_alt”,我有那个字段的数据。
我还使用了查询所有字段(将 null 放入 managedQuery() 函数的“String[] projection”变量)并检索了所有字段。我在 sortOrder 变量中插入了一个错误,以检索错误和自动创建的 SQL。所以SQL是这样的
near "mimetype": syntax error: , while compiling:
SELECT
data_version,
phonetic_name,
phonetic_name_style,
contact_id,
lookup,
data12,
data11,
data10,
mimetype,
data15,
data14,
data13,
display_name_source,
data_sync1,
data_sync3,
data_sync2,
data_sync4,
account_type,
custom_ringtone,
status_update_id,
status_updates.status AS status,
data1,
data4,
data5,
data2,
data3,
data8,
account_type AS ext_account_Type,
data9,
group_sourceid,
data6,
account_name,
data7,
display_name,
in_visible_group,
display_name_alt,
contacts_status_updates.status_res_package AS contact_status_res_package,
is_primary,
contacts_status_updates.status_ts AS contact_status_ts,
raw_contact_id,
times_contacted,
contacts_status_updates.status AS contact_status,
status_updates.status_res_package AS status_res_package,
status_updates.status_icon AS status_icon,
contacts_status_updates.status_icon AS contact_status_icon,
presence.mode AS mode,
version,
last_time_contacted,
res_package, _id,
name_verified,
status_updates.status_ts AS status_ts,
dirty,
is_super_primary,
photo_id,
send_to_voicemail,
name_raw_contact_id,
contacts_status_updates.status_label AS contact_status_label,
status_updates.status_label AS status_label,
sort_key_alt,
starred,
sort_key,
agg_presence.mode AS contact_presence,
sourceid
FROM
view_data_restricted data
LEFT OUTER JOIN agg_presence ON (agg_presence.presence_contact_id=contact_id)
LEFT OUTER JOIN status_updates contacts_status_updates ON (status_update_id=contacts_status_updates.status_update_data_id)
LEFT OUTER JOIN presence ON (presence_data_id=data._id)
LEFT OUTER JOIN status_updates ON (status_updates.status_update_data_id=data._id)
WHERE (1)
ORDER BY contact_id mimetype
所以你可以看到所有可用的字段。
我不知道如何从 Uri 中获取带有 SQL 字符串的 Cursor,例如 rawQuery() ...