1、package cn.ihope.mozyhome.util;import java.util.ArrayList;import java.util.List;import org.json.JSONException;import org.json.JSONObject;import android.content.Context;import android.database.Cursor;import android.provider.ContactsContract.CommonDataKinds.Email;import android.provider.ContactsContra
2、ct.CommonDataKinds.Event;import android.provider.ContactsContract.CommonDataKinds.Im;import android.provider.ContactsContract.CommonDataKinds.Nickname;import android.provider.ContactsContract.CommonDataKinds.Note;import android.provider.ContactsContract.CommonDataKinds.Organization;import android.pr
3、ovider.ContactsContract.CommonDataKinds.Phone;import android.provider.ContactsContract.CommonDataKinds.StructuredName;import android.provider.ContactsContract.CommonDataKinds.StructuredPostal;import android.provider.ContactsContract.CommonDataKinds.Website;import android.provider.ContactsContract.Da
4、ta;import android.util.Log;import cn.ihope.mozyhome.domain.Contacts;public class GetContactsInfo private List list;private Context context;private JSONObject contactData;private JSONObject jsonObject;public GetContactsInfo(Context context) this.context = context;public String getContactInfo() throws
5、 JSONException / 获得通讯录信息 ,URI 是 ContactsContract.Contacts.CONTENT_URIlist = new ArrayList();contactData = new JSONObject();String mimetype = “;int oldrid = -1;int contactId = -1;Cursor cursor = context.getContentResolver().query(Data.CONTENT_URI,null, null, null, Data.RAW_CONTACT_ID);int numm=0;whil
6、e (cursor.moveToNext() contactId = cursor.getInt(cursor.getColumnIndex(Data.RAW_CONTACT_ID); if (oldrid != contactId) jsonObject = new JSONObject();contactData.put(“contact“ + numm, jsonObject);numm+;oldrid = contactId;/ 取得 mimetype 类型mimetype = cursor.getString(cursor.getColumnIndex(Data.MIMETYPE);
7、/ 获得通讯录中每个联系人的 ID/ 获得通讯录中联系人的名字if (StructuredName.CONTENT_ITEM_TYPE.equals(mimetype) / String display_name = cursor.getString(cursor.getColumnIndex(StructuredName.DISPLAY_NAME);String prefix = cursor.getString(cursor.getColumnIndex(StructuredName.PREFIX);jsonObject.put(“prefix“, prefix);String first
8、Name = cursor.getString(cursor.getColumnIndex(StructuredName.FAMILY_NAME);jsonObject.put(“firstName“, firstName);String middleName = cursor.getString(cursor.getColumnIndex(StructuredName.MIDDLE_NAME);jsonObject.put(“middleName“, middleName);String lastname = cursor.getString(cursor.getColumnIndex(St
9、ructuredName.GIVEN_NAME);jsonObject.put(“lastname“, lastname);String suffix = cursor.getString(cursor.getColumnIndex(StructuredName.SUFFIX);jsonObject.put(“suffix“, suffix);String phoneticFirstName = cursor.getString(cursor.getColumnIndex(StructuredName.PHONETIC_FAMILY_NAME);jsonObject.put(“phonetic
10、FirstName“, phoneticFirstName);String phoneticMiddleName = cursor.getString(cursor.getColumnIndex(StructuredName.PHONETIC_MIDDLE_NAME);jsonObject.put(“phoneticMiddleName“, phoneticMiddleName);String phoneticLastName = cursor.getString(cursor.getColumnIndex(StructuredName.PHONETIC_GIVEN_NAME);jsonObj
11、ect.put(“phoneticLastName“, phoneticLastName);/ 获取电话信息if (Phone.CONTENT_ITEM_TYPE.equals(mimetype) / 取出电话类型int phoneType = cursor.getInt(cursor.getColumnIndex(Phone.TYPE);/ 手机if (phoneType = Phone.TYPE_MOBILE) String mobile = cursor.getString(cursor.getColumnIndex(Phone.NUMBER);jsonObject.put(“mobil
12、e“, mobile);/ 住宅电话if (phoneType = Phone.TYPE_HOME) String homeNum = cursor.getString(cursor.getColumnIndex(Phone.NUMBER);jsonObject.put(“homeNum“, homeNum);/ 单位电话if (phoneType = Phone.TYPE_WORK) String jobNum = cursor.getString(cursor.getColumnIndex(Phone.NUMBER);jsonObject.put(“jobNum“, jobNum);/ 单
13、位传真if (phoneType = Phone.TYPE_FAX_WORK) String workFax = cursor.getString(cursor.getColumnIndex(Phone.NUMBER);jsonObject.put(“workFax“, workFax);/ 住宅传真if (phoneType = Phone.TYPE_FAX_HOME) String homeFax = cursor.getString(cursor.getColumnIndex(Phone.NUMBER);jsonObject.put(“homeFax“, homeFax);/ 寻呼机if
14、 (phoneType = Phone.TYPE_PAGER) String pager = cursor.getString(cursor.getColumnIndex(Phone.NUMBER);jsonObject.put(“pager“, pager);/ 回拨号码if (phoneType = Phone.TYPE_CALLBACK) String quickNum = cursor.getString(cursor.getColumnIndex(Phone.NUMBER);jsonObject.put(“quickNum“, quickNum);/ 公司总机if (phoneTyp
15、e = Phone.TYPE_COMPANY_MAIN) String jobTel = cursor.getString(cursor.getColumnIndex(Phone.NUMBER);jsonObject.put(“jobTel“, jobTel);/ 车载电话if (phoneType = Phone.TYPE_CAR) String carNum = cursor.getString(cursor.getColumnIndex(Phone.NUMBER);jsonObject.put(“carNum“, carNum);/ ISDNif (phoneType = Phone.T
16、YPE_ISDN) String isdn = cursor.getString(cursor.getColumnIndex(Phone.NUMBER);jsonObject.put(“isdn“, isdn);/ 总机if (phoneType = Phone.TYPE_MAIN) String tel = cursor.getString(cursor.getColumnIndex(Phone.NUMBER);jsonObject.put(“tel“, tel);/ 无线装置if (phoneType = Phone.TYPE_RADIO) String wirelessDev = cur
17、sor.getString(cursor.getColumnIndex(Phone.NUMBER);jsonObject.put(“wirelessDev“, wirelessDev);/ 电报if (phoneType = Phone.TYPE_TELEX) String telegram = cursor.getString(cursor.getColumnIndex(Phone.NUMBER);jsonObject.put(“telegram“, telegram);/ TTY_TDDif (phoneType = Phone.TYPE_TTY_TDD) String tty_tdd =
18、 cursor.getString(cursor.getColumnIndex(Phone.NUMBER);jsonObject.put(“tty_tdd“, tty_tdd);/ 单位手机if (phoneType = Phone.TYPE_WORK_MOBILE) String jobMobile = cursor.getString(cursor.getColumnIndex(Phone.NUMBER);jsonObject.put(“jobMobile“, jobMobile);/ 单位寻呼机if (phoneType = Phone.TYPE_WORK_PAGER) String j
19、obPager = cursor.getString(cursor.getColumnIndex(Phone.NUMBER);jsonObject.put(“jobPager“, jobPager);/ 助理if (phoneType = Phone.TYPE_ASSISTANT) String assistantNum = cursor.getString(cursor.getColumnIndex(Phone.NUMBER);jsonObject.put(“assistantNum“, assistantNum);/ 彩信if (phoneType = Phone.TYPE_MMS) St
20、ring mms = cursor.getString(cursor.getColumnIndex(Phone.NUMBER);jsonObject.put(“mms“, mms);/ / 查找 email 地址if (Email.CONTENT_ITEM_TYPE.equals(mimetype) / 取出邮件类型int emailType = cursor.getInt(cursor.getColumnIndex(Email.TYPE);/ 住宅邮件地址if (emailType = Email.TYPE_CUSTOM) String homeEmail = cursor.getStrin
21、g(cursor.getColumnIndex(Email.DATA);jsonObject.put(“homeEmail“, homeEmail);/ 住宅邮件地址else if (emailType = Email.TYPE_HOME) String homeEmail = cursor.getString(cursor.getColumnIndex(Email.DATA);jsonObject.put(“homeEmail“, homeEmail);/ 单位邮件地址if (emailType = Email.TYPE_CUSTOM) String jobEmail = cursor.ge
22、tString(cursor.getColumnIndex(Email.DATA);jsonObject.put(“jobEmail“, jobEmail);/ 单位邮件地址else if (emailType = Email.TYPE_WORK) String jobEmail = cursor.getString(cursor.getColumnIndex(Email.DATA);jsonObject.put(“jobEmail“, jobEmail);/ 手机邮件地址if (emailType = Email.TYPE_CUSTOM) String mobileEmail = curso
23、r.getString(cursor.getColumnIndex(Email.DATA);jsonObject.put(“mobileEmail“, mobileEmail);/ 手机邮件地址else if (emailType = Email.TYPE_MOBILE) String mobileEmail = cursor.getString(cursor.getColumnIndex(Email.DATA);jsonObject.put(“mobileEmail“, mobileEmail);/ 查找 event 地址if (Event.CONTENT_ITEM_TYPE.equals(
24、mimetype) / 取出时间类型int eventType = cursor.getInt(cursor.getColumnIndex(Event.TYPE);/ 生日if (eventType = Event.TYPE_BIRTHDAY) String birthday = cursor.getString(cursor.getColumnIndex(Event.START_DATE);jsonObject.put(“birthday“, birthday);/ 周年纪念日if (eventType = Event.TYPE_ANNIVERSARY) String anniversary
25、 = cursor.getString(cursor.getColumnIndex(Event.START_DATE);jsonObject.put(“anniversary“, anniversary);/ 即时消息if (Im.CONTENT_ITEM_TYPE.equals(mimetype) / 取出即时消息类型int protocal = cursor.getInt(cursor.getColumnIndex(Im.PROTOCOL);if (Im.TYPE_CUSTOM = protocal) String workMsg = cursor.getString(cursor.get
26、ColumnIndex(Im.DATA);jsonObject.put(“workMsg“, workMsg);else if (Im.PROTOCOL_MSN = protocal) String workMsg = cursor.getString(cursor.getColumnIndex(Im.DATA);jsonObject.put(“workMsg“, workMsg);if (Im.PROTOCOL_QQ = protocal) String instantsMsg = cursor.getString(cursor.getColumnIndex(Im.DATA);jsonObj
27、ect.put(“instantsMsg“, instantsMsg);/ 获取备注信息if (Note.CONTENT_ITEM_TYPE.equals(mimetype) String remark = cursor.getString(cursor.getColumnIndex(Note.NOTE);jsonObject.put(“remark“, remark);/ 获取昵称信息if (Nickname.CONTENT_ITEM_TYPE.equals(mimetype) String nickName = cursor.getString(cursor.getColumnIndex(
28、Nickname.NAME);jsonObject.put(“nickName“, nickName);/ 获取组织信息if (Organization.CONTENT_ITEM_TYPE.equals(mimetype) / 取出组织类型int orgType = cursor.getInt(cursor.getColumnIndex(Organization.TYPE);/ 单位if (orgType = Organization.TYPE_CUSTOM) / if (orgType = Organization.TYPE_WORK) String company = cursor.get
29、String(cursor.getColumnIndex(Organization.COMPANY);jsonObject.put(“company“, company);String jobTitle = cursor.getString(cursor.getColumnIndex(Organization.TITLE);jsonObject.put(“jobTitle“, jobTitle);String department = cursor.getString(cursor.getColumnIndex(Organization.DEPARTMENT);jsonObject.put(“
30、department“, department);/ 获取网站信息if (Website.CONTENT_ITEM_TYPE.equals(mimetype) / 取出组织类型int webType = cursor.getInt(cursor.getColumnIndex(Website.TYPE);/ 主页if (webType = Website.TYPE_CUSTOM) String home = cursor.getString(cursor.getColumnIndex(Website.URL);jsonObject.put(“home“, home);/ 主页else if (w
31、ebType = Website.TYPE_HOME) String home = cursor.getString(cursor.getColumnIndex(Website.URL);jsonObject.put(“home“, home);/ 个人主页if (webType = Website.TYPE_HOMEPAGE) String homePage = cursor.getString(cursor.getColumnIndex(Website.URL);jsonObject.put(“homePage“, homePage);/ 工作主页if (webType = Website
32、.TYPE_WORK) String workPage = cursor.getString(cursor.getColumnIndex(Website.URL);jsonObject.put(“workPage“, workPage);/ 查找通讯地址if (StructuredPostal.CONTENT_ITEM_TYPE.equals(mimetype) / 取出邮件类型int postalType = cursor.getInt(cursor.getColumnIndex(StructuredPostal.TYPE);/ 单位通讯地址if (postalType = Structur
33、edPostal.TYPE_WORK) String street = cursor.getString(cursor.getColumnIndex(StructuredPostal.STREET);jsonObject.put(“street“, street);String ciry = cursor.getString(cursor.getColumnIndex(StructuredPostal.CITY);jsonObject.put(“ciry“, ciry);String box = cursor.getString(cursor.getColumnIndex(Structured
34、Postal.POBOX);jsonObject.put(“box“, box);String area = cursor.getString(cursor.getColumnIndex(StructuredPostal.NEIGHBORHOOD);jsonObject.put(“area“, area);String state = cursor.getString(cursor.getColumnIndex(StructuredPostal.REGION);jsonObject.put(“state“, state);String zip = cursor.getString(cursor
35、.getColumnIndex(StructuredPostal.POSTCODE);jsonObject.put(“zip“, zip);String country = cursor.getString(cursor.getColumnIndex(StructuredPostal.COUNTRY);jsonObject.put(“country“, country);/ 住宅通讯地址if (postalType = StructuredPostal.TYPE_HOME) String homeStreet = cursor.getString(cursor.getColumnIndex(S
36、tructuredPostal.STREET);jsonObject.put(“homeStreet“, homeStreet);String homeCity = cursor.getString(cursor.getColumnIndex(StructuredPostal.CITY);jsonObject.put(“homeCity“, homeCity);String homeBox = cursor.getString(cursor.getColumnIndex(StructuredPostal.POBOX);jsonObject.put(“homeBox“, homeBox);Str
37、ing homeArea = cursor.getString(cursor.getColumnIndex(StructuredPostal.NEIGHBORHOOD);jsonObject.put(“homeArea“, homeArea);String homeState = cursor.getString(cursor.getColumnIndex(StructuredPostal.REGION);jsonObject.put(“homeState“, homeState);String homeZip = cursor.getString(cursor.getColumnIndex(
38、StructuredPostal.POSTCODE);jsonObject.put(“homeZip“, homeZip);String homeCountry = cursor.getString(cursor.getColumnIndex(StructuredPostal.COUNTRY);jsonObject.put(“homeCountry“, homeCountry);/ 其他通讯地址if (postalType = StructuredPostal.TYPE_OTHER) String otherStreet = cursor.getString(cursor.getColumnI
39、ndex(StructuredPostal.STREET);jsonObject.put(“otherStreet“, otherStreet);String otherCity = cursor.getString(cursor.getColumnIndex(StructuredPostal.CITY);jsonObject.put(“otherCity“, otherCity);String otherBox = cursor.getString(cursor.getColumnIndex(StructuredPostal.POBOX);jsonObject.put(“otherBox“,
40、 otherBox);String otherArea = cursor.getString(cursor.getColumnIndex(StructuredPostal.NEIGHBORHOOD);jsonObject.put(“otherArea“, otherArea);String otherState = cursor.getString(cursor.getColumnIndex(StructuredPostal.REGION);jsonObject.put(“otherState“, otherState);String otherZip = cursor.getString(c
41、ursor.getColumnIndex(StructuredPostal.POSTCODE);jsonObject.put(“otherZip“, otherZip);String otherCountry = cursor.getString(cursor.getColumnIndex(StructuredPostal.COUNTRY);jsonObject.put(“otherCountry“, otherCountry);cursor.close();Log.i(“contactData“, contactData.toString();return contactData.toString();