- http://fanfq.iteye.com/blog/779569 より転載
- android.app.Activityをインポートします 。
- android.database.Cursor をインポートします。
- android.os.Bundleをインポートします 。
- android.provider.ContactsContract をインポートします。
- android.provider.ContactsContract.Data をインポートします。
- インポート android.provider.ContactsContract.CommonDataKinds.Im;
- インポート android.provider.ContactsContract.CommonDataKinds.Nickname;
- インポート android.provider.ContactsContract.CommonDataKinds.Note;
- インポート android.provider.ContactsContract.CommonDataKinds.Organization;
- android.util.Logをインポートします 。
- public class ContactActivity extends Activity {
- /** アクティビティが最初に作成されるときに呼び出されます。*/
- @オーバーライド
- public void onCreate(バンドル保存インスタンス状態) {
- super .onCreate(savedInstanceState);
- setContentView(R.layout.main);
- // すべての連絡先を取得します
- カーソル cur = getContentResolver().query(
- ContactsContract.Contacts.CONTENT_URI、
- null、
- null、
- null、
- ContactsContract.Contacts.DISPLAY_NAME
- + " ローカライズされた ASC を照合します" );
- // ループスルー
- if (cur.moveToFirst()) {
- int idColumn = cur.getColumnIndex(ContactsContract.Contacts._ID);
- int 表示名列 = cur
- .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
- する {
- // 連絡先の ID 番号を取得します
- 文字列 contactId = cur.getString(idColumn);
- // 連絡先名を取得する
- String disPlayName = cur.getString(displayNameColumn);
- // この連絡先にある電話番号の数を確認します。そうでない場合、戻り値は 0 です
- intphoneCount = cur
- .getInt(cur
- .getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
- Log.i( "ユーザー名" , disPlayName);
- if (phoneCount > 0 ) {
- // 連絡先の電話番号を取得します
- カーソル電話 = getContentResolver().query(
- ContactsContract.CommonDataKinds.Phone.CONTENT_URI、
- null、
- ContactsContract.CommonDataKinds.Phone.CONTACT_ID
- + " = " + contactId、 null、 null );
- if (phones.moveToFirst()) {
- する {
- // すべての電話番号をループします
- 文字列電話番号 = 電話
- .getString(電話
- .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
- 文字列phoneType = 電話
- .getString(電話
- .getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE));
- Log.i( "電話番号" , 電話番号);
- Log.i( "phoneType" , PhoneType);
- while (phones.moveToNext ( ));
- }
- }
- // 連絡先のメールアドレスを取得します
- カーソルメール = getContentResolver().query(
- ContactsContract.CommonDataKinds.Email.CONTENT_URI、
- null、
- ContactsContract.CommonDataKinds.Phone.CONTACT_ID
- + " = " + contactId、 null、 null );
- if (emails.moveToFirst()) {
- する {
- // すべての電話番号をループします
- 文字列 emailType = 電子メール
- .getString(メール
- .getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE));
- 文字列 emailValue = メール
- .getString(メール
- .getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
- Log.i( "emailType" , emailType);
- Log.i( "emailValue" , emailValue);
- while (emails.moveToNext ( ));
- }
- // 連絡先 IM を取得します
- カーソル IM = getContentResolver().query(
- データ.CONTENT_URI、
- new String[] { Data._ID, Im.PROTOCOL, Im.DATA },
- データ.CONTACT_ID + "=?" + " AND " + Data.MIMETYPE + "='"
- + Im.CONTENT_ITEM_TYPE + "'" ,
- new String[] { contactId }、 null );
- if (IMs.moveToFirst()) {
- する {
- 文字列プロトコル = IMs.getString(IMs
- .getColumnIndex(Im.PROTOCOL));
- 文字列日付 = IM
- .getString(IMs.getColumnIndex(Im.DATA));
- Log.i( "プロトコル" , プロトコル);
- Log.i( "日付" , 日付);
- while (IMs.moveToNext ( ));
- }
- // 連絡先のアドレスを取得する
- カーソルアドレス = getContentResolver()
- .query(
- ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI、
- null、
- ContactsContract.CommonDataKinds.Phone.CONTACT_ID
- + " = " + contactId、 null、 null );
- if (address.moveToFirst()) {
- する {
- // すべてのアドレスをループします
- 文字列ストリート = 住所
- .getString(アドレス
- .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.STREET));
- 文字列都市 = 住所
- .getString(アドレス
- .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.CITY));
- 文字列領域 = アドレス
- .getString(アドレス
- .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.REGION));
- 文字列郵便番号 = 住所
- .getString(アドレス
- .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE));
- 文字列形式Address = アドレス
- .getString(アドレス
- .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.FORMATTED_ADDRESS));
- Log.i( "ストリート" , ストリート);
- Log.i( "都市" , 都市);
- Log.i( "地域" , 地域);
- Log.i( "postCode" , postCode);
- Log.i( "formatAddress" , formatAddress);
- while ( address.moveToNext());
- }
- // 連絡先の組織を取得します
- カーソル組織 = getContentResolver().query(
- データ.CONTENT_URI、
- new String[] { Data._ID、Organization.COMPANY、
- 組織.TITLE },
- データ.CONTACT_ID + "=?" + " AND " + Data.MIMETYPE + "='"
- + Organization.CONTENT_ITEM_TYPE + "'" ,
- new String[] { contactId }、 null );
- if (organizations.moveToFirst()) {
- する {
- 文字列会社 = 組織.getString(組織
- .getColumnIndex(組織.COMPANY));
- 文字列タイトル = 組織.getString(組織
- .getColumnIndex(組織.TITLE));
- Log.i( "会社" , 会社);
- Log.i( "タイトル" , タイトル);
- while ( organizations.moveToNext());
- }
- // メモを取得する
- カーソルメモ = getContentResolver().query(
- データ.CONTENT_URI、
- new String[] { Data._ID, Note.NOTE },
- データ.CONTACT_ID + "=?" + " AND " + Data.MIMETYPE + "='"
- + Note.CONTENT_ITEM_TYPE + "'" ,
- new String[] { contactId }、 null );
- if (notes.moveToFirst()) {
- する {
- String noteinfo = note.getString(notes
- .getColumnIndex(Note.NOTE));
- Log.i( "noteinfo" , noteinfo);
- while (notes.moveToNext ( ));
- }
- // ニックネーム情報を取得する
- カーソルのニックネーム = getContentResolver().query(
- データ.CONTENT_URI、
- new String[] { Data._ID, Nickname.NAME },
- データ.CONTACT_ID + "=?" + " AND " + Data.MIMETYPE + "='"
- + ニックネーム.CONTENT_ITEM_TYPE + "'" ,
- new String[] { contactId }、 null );
- if (nicknames.moveToFirst()) {
- する {
- 文字列 Nickname_ = Nicknames.getString(ニックネーム
- .getColumnIndex(ニックネーム.NAME));
- Log.i( "ニックネーム_" , ニックネーム_);
- while (nicknames.moveToNext ( ));
- }
- while (cur.moveToNext ( ));
- }
- }
- }