これらのフィールドの一部も使用したかった (ver 2.2) が、ContactsContract.DataColumnsWithJoins.DISPLAY_NAME_ALTERNATIVE 静的文字列が表示されない。そのため、クエリ「display_name_alt」にその値を直接使用し、そのフィールドのデータを取得しました。
すべてのフィールドを要求するクエリも使用し (managedQuery() 関数の「String[] プロジェクション」変数に null を入力)、すべてのフィールドを取得しました。エラーと自動作成されたSQLを取得するために、sortOrder変数に間違いを挿入しました。だから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
したがって、使用可能なすべてのフィールドを表示できます。
方法がわからないのは、rawQuery() のように、Uri から SQL 文字列を含む Cursor を取得することです ...