2017-07-11 11 views
0

私は、エミュレータ(API 19)とchecked contactsテーブルからcontacts2.dbを取り出しました。 contacts table私はcontacts2.dbをチェックしましたが、連絡先テーブルにはdisplay_nameカラムがありません

display_nameの列はありません。次のコードを実行した後しかし

Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); 
startActivityForResult(intent, REQUEST_CONTACT); 

public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (resultCode != Activity.RESULT_OK) { 
     return; 
    } 

    if (requestCode == REQUEST_DATE) { 
    ... 

    } else if (requestCode == REQUEST_CONTACT && data != null) { 
     Uri contactUri = data.getData(); 

     // Perform your query - the contactUri is like a "where" clause here 
     Cursor c = getActivity().getContentResolver().query(contactUri 
      , null 
      , null 
      , null 
      , null); 

     //cursor null check 

     try { 
      // Double-check that you actually got results 
      if (c.getCount() == 0) { 
       return; 
      } 
      c.moveToFirst(); 
      String[] names = c.getColumnNames(); 
     } finally { 
      c.close(); 
     } 
    } 
} 

私は名前をチェックすると、列のリストは、それはDISPLAY_NAME列が含ま

sort_key 
photo_uri 
send_to_voicemail 
contact_status 
contact_status_label 
pinned 
display_name 
phonebook_label_alt 
phonebook_bucket 
contact_status_res_package 
photo_id 
in_default_directory 
custom_ringtone 
_id 
times_contacted 
phonebook_label 
lookup 
display_name_alt 
phonetic_name 
last_time_contacted 
contact_last_updated_timestamp 
has_phone_number 
in_visible_group 
is_user_profile 
display_name_source 
photo_file_id 
contact_status_ts 
phonebook_bucket_alt 
sort_key_alt 
contact_presence 
starred 
photo_thumb_uri 
contact_status_icon 
contact_chat_capability 
phonetic_name_style 
name_raw_contact_id 

です。どのように可能ですか?

答えて

0

あなたは約ContactsContractを知っていますか? docs

クラス契約約クラスから

は、プロバイダが正しくURIの実際の値に変更があってもアクセスできることを保証することにより、プロバイダと他のアプリケーションとの間の契約を確立します、、列名など。

のでdisplay_name列は、プロバイダによって実際 DISPLAY_NAMEに翻訳され、要求がなされています。カーソルは定義に従って翻訳されますContactsContract.

+0

私はContactsContractを知っています...アップロードした画像をチェックしましたか?最初の行で "連絡先テーブル"をクリックすると、それを見ることができます。私はcontacts2.dbを読むためにSQLiteツールを使い、ツールは私に列リストを示しました。 –

+0

'display_name'にマッピングできる列がないとしますか? –

+0

はい。次のサイトの「列」表の連絡先表の列が表示されます。https://developer.android.com/reference/android/provider/ContactsContract.Contacts.html display_nameはありません! –

関連する問題