android获得联系人


import android.annotation.SuppressLint;

import android.app.Activity;

import android.content.ContentResolver;

import android.database.Cursor;

import android.os.Bundle;

import android.provider.ContactsContract;



public class GetContacts extends Activity {

    /**

     * Called when the activity is first created.

     */



    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        readContacts();

    }



    @SuppressWarnings("unused")

    @SuppressLint("NewApi")

    public void readContacts() {

        ContentResolver cr = getContentResolver();

        Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,

                null, null, null, null);



        if (cur.getCount() > 0) {

            while (cur.moveToNext()) {

                String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));

                String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));

                if (Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {

                    System.out.println("name : " + name + ", ID : " + id);



                    // get the phone number

                    Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,

                            ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?",

                            new String[]{id}, null);

                    while (pCur.moveToNext()) {

                        String phone = pCur.getString(

                                pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

                        System.out.println("phone" + phone);

                    }

                    pCur.close();





                    // get email and type



                    Cursor emailCur = cr.query(

                            ContactsContract.CommonDataKinds.Email.CONTENT_URI,

                            null,

                            ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?",

                            new String[]{id}, null);

                    while (emailCur.moveToNext()) {

                        // This would allow you get several email addresses

                        // if the email addresses were stored in an array

                        String email = emailCur.getString(

                                emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));

                        String emailType = emailCur.getString(

                                emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE));



                        System.out.println("Email " + email + " Email Type : " + emailType);

                    }

                    emailCur.close();



                    // Get note.......

                    String noteWhere = ContactsContract.Data.CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?";

                    String[] noteWhereParams = new String[]{id,

                            ContactsContract.CommonDataKinds.Note.CONTENT_ITEM_TYPE};

                    Cursor noteCur = cr.query(ContactsContract.Data.CONTENT_URI, null, noteWhere, noteWhereParams, null);

                    if (noteCur.moveToFirst()) {

                        String note = noteCur.getString(noteCur.getColumnIndex(ContactsContract.CommonDataKinds.Note.NOTE));

                        System.out.println("Note " + note);

                    }

                    noteCur.close();



                    //Get Postal Address....



                    String addrWhere = ContactsContract.Data.CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?";

                    String[] addrWhereParams = new String[]{id,

                            ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE};

                    Cursor addrCur = cr.query(ContactsContract.Data.CONTENT_URI,

                            null, null, null, null);

                    while (addrCur.moveToNext()) {

                        String poBox = addrCur.getString(

                                addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POBOX));

                        String street = addrCur.getString(

                                addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.STREET));

                        String city = addrCur.getString(

                                addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.CITY));

                        String state = addrCur.getString(

                                addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.REGION));

                        String postalCode = addrCur.getString(

                                addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE));

                        String country = addrCur.getString(

                                addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY));

                        String type = addrCur.getString(

                                addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.TYPE));



                        // Do something with these....



                    }

                    addrCur.close();



                    // Get Instant Messenger.........

                    String imWhere = ContactsContract.Data.CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?";

                    String[] imWhereParams = new String[]{id,

                            ContactsContract.CommonDataKinds.Im.CONTENT_ITEM_TYPE};

                    Cursor imCur = cr.query(ContactsContract.Data.CONTENT_URI,

                            null, imWhere, imWhereParams, null);

                    if (imCur.moveToFirst()) {

                        String imName = imCur.getString(

                                imCur.getColumnIndex(ContactsContract.CommonDataKinds.Im.DATA));

                        String imType;

                        imType = imCur.getString(

                                imCur.getColumnIndex(ContactsContract.CommonDataKinds.Im.TYPE));

                    }

                    imCur.close();



                    // Get Organizations.........



                    String orgWhere = ContactsContract.Data.CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?";

                    String[] orgWhereParams = new String[]{id,

                            ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE};

                    Cursor orgCur = cr.query(ContactsContract.Data.CONTENT_URI,

                            null, orgWhere, orgWhereParams, null);

                    if (orgCur.moveToFirst()) {

                        String orgName = orgCur.getString(orgCur.getColumnIndex(ContactsContract.CommonDataKinds.Organization.DATA));

                        String title = orgCur.getString(orgCur.getColumnIndex(ContactsContract.CommonDataKinds.Organization.TITLE));

                    }

                    orgCur.close();

                }

            }

        }

    }



}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值