2012-05-10 7 views
6

私のアプリケーションでは、ContactsContractの利用可能なすべてのフィールドを表示/編集するために、ユーザーに権限を与える必要があります。Contacts利用可能なすべてのフィールドを列挙する方法のコントラクト?

利用可能なすべてのフィールド(カスタムフィールドを含む)を取得/表示する方法を教えてください。

+0

+1そのような素晴らしい概念です。 – Praveenkumar

答えて

9

お使いの携帯電話に存在する人の名前のすべてをまず取得:

Cursor phones = getContentResolver().query(
        ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
        null, 
        null, 
        null, 
        ContactsContract.Contacts.DISPLAY_NAME 
          + " COLLATE LOCALIZED ASC"); 
      while (phones.moveToNext()) { 

       name = phones 
         .getString(phones 
           .getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); 
       namelist.add(name); 
       String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
       number_list.add(phoneNumber); 
      detaillist.put(name, phoneNumber); 
      } 
      phones.close(); 
} 

今接触IDを取得し、連絡先IDを使用して、電話番号、電子メールID、住所、組織のような他の情報を入手:

このようにすると、contacts-contractのすべてのフィールドを取得できます。

+0

気高いですが、ユーザー定義のフィールドがある場合はどうなりますか?私を啓発できますか? – barmaley

+0

ちょっと、このcontactscontractクラスは、ユーザが定義したすべてのファイルにアクセスするためのフルアクセスを提供します。さらにアクセスしたい場合は、まずこのリンクhttp://developer.android.com/reference/android/provider/ContactsContractに従ってください。 htmlこれはちょうど概念の賢明なURLです。私は実装の中で助けとなる1つの良いURLを提供しています。http://www.higherpass.com/Android/Tutorials/Working-With-Android-Contacts/そして私に投票してください。それはあなたのために便利です。 – itechDroid

+0

それは素晴らしい作品です..ありがとうございます。 –

1

これは、すべての連絡先行のすべての列の名前と値を記録します。ネイティブの連絡先アプリでGalaxy S6でテストされました。カスタムSMS通知音(sec_custom_alert)に使用される列名を見つける必要がありました。

private void enumerateColumns() { 
    Cursor cursor = getApplicationContext().getContentResolver().query(
      ContactsContract.Contacts.CONTENT_URI, 
      null, null, null, null); 

    if (cursor != null && cursor.moveToFirst()) { 
     do { 
      for(int i=0; i<cursor.getColumnCount();i++) 
      { 
       Log.d("myActivity", cursor.getColumnName(i) + " : " + cursor.getString(i)); 
      } 
     } while (cursor.moveToNext()); 

     cursor.close(); 
    } 
} 
関連する問題