Androidの連絡先情報を取得する

  1. http://fanfq.iteye.com/blog/779569 より転載

 

  1. android.app.Activityをインポートします 。  
  2.  android.database.Cursor  をインポートします。
  3. android.os.Bundleをインポートします 。  
  4.  android.provider.ContactsContract  をインポートします。
  5.  android.provider.ContactsContract.Data  をインポートします。
  6. インポート android.provider.ContactsContract.CommonDataKinds.Im;  
  7. インポート android.provider.ContactsContract.CommonDataKinds.Nickname;  
  8. インポート android.provider.ContactsContract.CommonDataKinds.Note;  
  9. インポート android.provider.ContactsContract.CommonDataKinds.Organization;  
  10. android.util.Logをインポートします 。  
  11.   
  12. public  class  ContactActivity  extends  Activity {  
  13.     /** アクティビティが最初に作成されるときに呼び出されます。*/  
  14.     @オーバーライド  
  15.     public  void  onCreate(バンドル保存インスタンス状態) {  
  16.         super .onCreate(savedInstanceState);  
  17.         setContentView(R.layout.main);  
  18.   
  19.         // すべての連絡先を取得します  
  20.         カーソル cur = getContentResolver().query(  
  21.                 ContactsContract.Contacts.CONTENT_URI、  
  22.                 null、  
  23.                 null、  
  24.                 null、  
  25.                 ContactsContract.Contacts.DISPLAY_NAME  
  26.                         +  " ローカライズされた ASC を照合します" );  
  27.         // ループスルー  
  28.         if  (cur.moveToFirst()) {  
  29.             int  idColumn = cur.getColumnIndex(ContactsContract.Contacts._ID);  
  30.   
  31.             int 表示名列 = cur  
  32.                     .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);  
  33.   
  34.             する {  
  35.                 // 連絡先の ID 番号を取得します  
  36.                 文字列 contactId = cur.getString(idColumn);  
  37.                 // 連絡先名を取得する  
  38.                 String disPlayName = cur.getString(displayNameColumn);  
  39.                   
  40.                 // この連絡先にある電話番号の数を確認します。そうでない場合、戻り値は 0 です  
  41.                 intphoneCount  = cur  
  42.                         .getInt(cur  
  43.                                 .getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));  
  44.                 Log.i( "ユーザー名" , disPlayName);  
  45.                 if  (phoneCount >  0 ) {  
  46.                     // 連絡先の電話番号を取得します  
  47.                     カーソル電話 = getContentResolver().query(  
  48.                             ContactsContract.CommonDataKinds.Phone.CONTENT_URI、  
  49.                             null、  
  50.                             ContactsContract.CommonDataKinds.Phone.CONTACT_ID  
  51.                                     +  " = "  + contactId、  null、  null );  
  52.                     if  (phones.moveToFirst()) {  
  53.                         する {  
  54.                             // すべての電話番号をループします  
  55.                             文字列電話番号 = 電話  
  56.                                     .getString(電話  
  57.                                             .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));  
  58.                             文字列phoneType = 電話  
  59.                                     .getString(電話  
  60.                                             .getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE));  
  61.                             Log.i( "電話番号" , 電話番号);  
  62.                             Log.i( "phoneType" , PhoneType);  
  63.                         while  (phones.moveToNext (  ));  
  64.                     }  
  65.                 }  
  66.   
  67.                 // 連絡先のメールアドレスを取得します  
  68.                 カーソルメール = getContentResolver().query(  
  69.                         ContactsContract.CommonDataKinds.Email.CONTENT_URI、  
  70.                         null、  
  71.                         ContactsContract.CommonDataKinds.Phone.CONTACT_ID  
  72.                                 +  " = "  + contactId、  null、  null );  
  73.                 if  (emails.moveToFirst()) {  
  74.                     する {  
  75.                         // すべての電話番号をループします  
  76.                         文字列 emailType = 電子メール  
  77.                                 .getString(メール  
  78.                                         .getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE));  
  79.                         文字列 emailValue = メール  
  80.                                 .getString(メール  
  81.                                         .getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));  
  82.                           
  83.                         Log.i( "emailType" , emailType);  
  84.                         Log.i( "emailValue" , emailValue);  
  85.                     while  (emails.moveToNext (  ));  
  86.                 }  
  87.   
  88.                 // 連絡先 IM を取得します  
  89.                 カーソル IM = getContentResolver().query(  
  90.                         データ.CONTENT_URI、  
  91.                         new  String[] { Data._ID, Im.PROTOCOL, Im.DATA },  
  92.                         データ.CONTACT_ID +  "=?"  +  " AND "  + Data.MIMETYPE +  "='"  
  93.                                 + Im.CONTENT_ITEM_TYPE +  "'" ,  
  94.                         new  String[] { contactId }、  null );  
  95.                 if  (IMs.moveToFirst()) {  
  96.                     する {  
  97.                         文字列プロトコル = IMs.getString(IMs  
  98.                                 .getColumnIndex(Im.PROTOCOL));  
  99.                         文字列日付 = IM  
  100.                                 .getString(IMs.getColumnIndex(Im.DATA));  
  101.                         Log.i( "プロトコル" , プロトコル);  
  102.                         Log.i( "日付" , 日付);  
  103.                     while  (IMs.moveToNext (  ));  
  104.                 }  
  105.   
  106.                 // 連絡先のアドレスを取得する  
  107.                 カーソルアドレス = getContentResolver()  
  108.                         .query(  
  109.                                 ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI、  
  110.                                 null、  
  111.                                 ContactsContract.CommonDataKinds.Phone.CONTACT_ID  
  112.                                         +  " = "  + contactId、  null、  null );  
  113.                 if  (address.moveToFirst()) {  
  114.                     する {  
  115.                         // すべてのアドレスをループします  
  116.                         文字列ストリート = 住所  
  117.                                 .getString(アドレス  
  118.                                         .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.STREET));  
  119.                         文字列都市 = 住所  
  120.                                 .getString(アドレス  
  121.                                         .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.CITY));  
  122.                         文字列領域 = アドレス  
  123.                                 .getString(アドレス  
  124.                                         .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.REGION));  
  125.                         文字列郵便番号 = 住所  
  126.                                 .getString(アドレス  
  127.                                         .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE));  
  128.                         文字列形式Address = アドレス  
  129.                                 .getString(アドレス  
  130.                                         .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.FORMATTED_ADDRESS));  
  131.                         Log.i( "ストリート" , ストリート);  
  132.                         Log.i( "都市" , 都市);  
  133.                         Log.i( "地域" , 地域);  
  134.                         Log.i( "postCode" , postCode);  
  135.                         Log.i( "formatAddress" , formatAddress);  
  136.                     while  (  address.moveToNext());  
  137.                 }  
  138.   
  139.                 // 連絡先の組織を取得します  
  140.                 カーソル組織 = getContentResolver().query(  
  141.                         データ.CONTENT_URI、  
  142.                         new  String[] { Data._ID、Organization.COMPANY、  
  143.                                 組織.TITLE },  
  144.                         データ.CONTACT_ID +  "=?"  +  " AND "  + Data.MIMETYPE +  "='"  
  145.                                 + Organization.CONTENT_ITEM_TYPE +  "'" ,  
  146.                         new  String[] { contactId }、  null );  
  147.                 if  (organizations.moveToFirst()) {  
  148.                     する {  
  149.                         文字列会社 = 組織.getString(組織  
  150.                                 .getColumnIndex(組織.COMPANY));  
  151.                         文字列タイトル = 組織.getString(組織  
  152.                                 .getColumnIndex(組織.TITLE));  
  153.                         Log.i( "会社" , 会社);  
  154.                         Log.i( "タイトル" , タイトル);  
  155.                     while  (  organizations.moveToNext());  
  156.                 }  
  157.   
  158.                 // メモを取得する  
  159.                 カーソルメモ = getContentResolver().query(  
  160.                         データ.CONTENT_URI、  
  161.                         new  String[] { Data._ID, Note.NOTE },  
  162.                         データ.CONTACT_ID +  "=?"  +  " AND "  + Data.MIMETYPE +  "='"  
  163.                                 + Note.CONTENT_ITEM_TYPE +  "'" ,  
  164.                         new  String[] { contactId }、  null );  
  165.                 if  (notes.moveToFirst()) {  
  166.                     する {  
  167.                         String noteinfo = note.getString(notes  
  168.                                 .getColumnIndex(Note.NOTE));  
  169.                         Log.i( "noteinfo" , noteinfo);  
  170.                     while  (notes.moveToNext (  ));  
  171.                 }  
  172.   
  173.                 // ニックネーム情報を取得する  
  174.                 カーソルのニックネーム = getContentResolver().query(  
  175.                         データ.CONTENT_URI、  
  176.                         new  String[] { Data._ID, Nickname.NAME },  
  177.                         データ.CONTACT_ID +  "=?"  +  " AND "  + Data.MIMETYPE +  "='"  
  178.                                 + ニックネーム.CONTENT_ITEM_TYPE +  "'" ,  
  179.                         new  String[] { contactId }、  null );  
  180.                 if  (nicknames.moveToFirst()) {  
  181.                     する {  
  182.                         文字列 Nickname_ = Nicknames.getString(ニックネーム  
  183.                                 .getColumnIndex(ニックネーム.NAME));  
  184.                         Log.i( "ニックネーム_" , ニックネーム_);  
  185.                     while  (nicknames.moveToNext (  ));  
  186.                 }  
  187.   
  188.             while  (cur.moveToNext (  ));  
  189.   
  190.         }  
  191.   
  192.     }  
  193.   
  194. }  

おすすめ

転載: blog.csdn.net/jiabaokang/article/details/78852845