Я также хотел использовать некоторые из этих полей (версия 2.2), но статическая строка ContactsContract.DataColumnsWithJoins.DISPLAY_NAME_ALTERNATIVE не видна.Поэтому я непосредственно использовал его значение для запроса "display_name_alt", и у меня были данные этого поля.
Я также использовал запрос, запрашивающий все поля (помещая ноль в переменную 'String [] projection' managedQuery () и извлекли все поля.Я вставил ошибку в переменную 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
Таким образом, вы можете увидеть все доступные поля.
То, что я не знаю как, это получить курсор с строкой SQL из Uri, какrawQuery () ...