立即注册
 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广州大学城网业务调整

[Java/JSP] android读取联系人详细信息 [复制链接] qrcode

查看: 2848 | 回复: 0

大法师的 该用户已被删除
发表于: 2013-1-3 16:23:18 | 显示全部楼层

/**
* <获取系统通讯录信息>
* @author 王乾州
*/
public void getSystemContacts()
{
Cursor cursor = null;
Cursor photoCursor = null;
Cursor phoneCursor = null;
Cursor emailCursor = null;
Cursor IMCursor = null;
Cursor addressCursor = null;
Cursor organizationsCursor = null;
Cursor notesCursor = null;
Cursor nicknamesCursor = null;
Cursor webSiteCursor = null;
try
{
ContentResolver cr = context.getContentResolver();
cursor =cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
if (null != cursor)
{
while (cursor.moveToNext())
{
/* 联系人的ID */
long contactid =cursor.getLong(cursor.getColumnIndex(ContactsContract.Contacts._ID));
/* 联系人的姓名 */
String name =cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
System.out.println(“name–>” + name);
/* 联系人头像 */
Uri contactUri =ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, contactid);
Uri photoUri = Uri.withAppendedPath(contactUri,Photo.CONTENT_DIRECTORY);
if (null != photoUri)
{
photoCursor =
cr.query(photoUri,
new String[] {ContactsContract.CommonDataKinds.Photo.PHOTO},
null,
null,
null);
if (null != photoCursor &&photoCursor.moveToNext())
{
byte[] data = photoCursor.getBlob(0);
System.out.println(“photo–>” + data);
}
}
/**
* 联系人的各个电话
*/
int isHas =
Integer.parseInt(cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)));
if (isHas > 0)
{
phoneCursor =
cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + ”= ” + contactid,
null,
null);
if (null != phoneCursor)
{
while (phoneCursor.moveToNext())
{
String phoneType =
phoneCursor.getString(phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE));
String number =
phoneCursor.getString(phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
int phType = Integer.parseInt(phoneType);
if(android.provider.ContactsContract.CommonDataKinds.Phone.TYPE_HOME == phType)
{
/**
* 住宅
*/
}
if (android.provider.ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE ==phType)
{
/**
* 手机
*/
}
if (android.provider.ContactsContract.CommonDataKinds.Phone.TYPE_WORK ==phType)
{
/**
* 单位
*/
}
if (android.provider.ContactsContract.CommonDataKinds.Phone.TYPE_FAX_WORK== phType)
{
/**
* 单位传真
*/
}
if (android.provider.ContactsContract.CommonDataKinds.Phone.TYPE_FAX_HOME== phType)
{
/**
* 住宅传真
*/
}
if (android.provider.ContactsContract.CommonDataKinds.Phone.TYPE_PAGER ==phType)
{
/**
* 寻呼机
*/
}
if (android.provider.ContactsContract.CommonDataKinds.Phone.TYPE_OTHER ==phType)
{
/**
* 其他
*/
}
if (android.provider.ContactsContract.CommonDataKinds.Phone.TYPE_CALLBACK== phType)
{
/**
* 回拨电话
*/
}
if (android.provider.ContactsContract.CommonDataKinds.Phone.TYPE_CAR ==phType)
{
/**
* 车载电话
*/
}
if(android.provider.ContactsContract.CommonDataKinds.Phone.TYPE_COMPANY_MAIN ==phType)
{
/**
* 公司总机
*/
}
if (android.provider.ContactsContract.CommonDataKinds.Phone.TYPE_ISDN ==phType)
{
/**
* ISDN
*/
}
if (android.provider.ContactsContract.CommonDataKinds.Phone.TYPE_MAIN ==phType)
{
/**
* 总机
*/
}
if (android.provider.ContactsContract.CommonDataKinds.Phone.TYPE_OTHER_FAX== phType)
{
/**
* 其他传真
*/
}
if (android.provider.ContactsContract.CommonDataKinds.Phone.TYPE_RADIO ==phType)
{
/**
* 无线装置
*/
}
if (android.provider.ContactsContract.CommonDataKinds.Phone.TYPE_TELEX ==phType)
{
/**
* 电报
*/
}
if (android.provider.ContactsContract.CommonDataKinds.Phone.TYPE_TTY_TDD ==phType)
{
/**
* TTY TDD
*/
}
if (android.provider.ContactsContract.CommonDataKinds.Phone.TYPE_WORK_MOBILE== phType)
{
/**
* 单位手机
*/
}
if (android.provider.ContactsContract.CommonDataKinds.Phone.TYPE_WORK_PAGER== phType)
{
/**
* 单位寻呼机
*/
}
if (android.provider.ContactsContract.CommonDataKinds.Phone.TYPE_ASSISTANT== phType)
{
/**
* 助理
*/
}
if (android.provider.ContactsContract.CommonDataKinds.Phone.TYPE_MMS ==phType)
{
/**
* 彩信
*/
}
System.out.println(“phoneType->” + phoneType + ”number–>” + number);
}
}
}
/**
* 联系人的各个邮箱
*/
emailCursor =
cr.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Email.CONTACT_ID + ”= ” + contactid,
null,
null);
if (null != emailCursor)
{
while (emailCursor.moveToNext())
{
String emailType =
emailCursor.getString(emailCursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE));
String emailAccount =
emailCursor.getString(emailCursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
int emaType = Integer.parseInt(emailType);
if (android.provider.ContactsContract.CommonDataKinds.Email.TYPE_HOME== emaType)
{
/**
* 家用个人邮箱
*/
}
if (android.provider.ContactsContract.CommonDataKinds.Email.TYPE_WORK ==emaType)
{
/**
* 单位邮箱
*/
}
if (android.provider.ContactsContract.CommonDataKinds.Email.TYPE_OTHER ==emaType)
{
/**
* 其他邮箱
*/
}
if (android.provider.ContactsContract.CommonDataKinds.Email.TYPE_MOBILE ==emaType)
{
/**
* 手机邮箱
*/
}
System.out.println(“emailType->” + emailType + ”emailAccount–>” + emailAccount);
}
}
/**
* 联系人的各个IM
*/
IMCursor =
cr.query(Data.CONTENT_URI,
new String[] {Data._ID, Im.PROTOCOL, Im.DATA},
Data.CONTACT_ID + ” = ?” + ” AND ” + Data.MIMETYPE +“=’” + Im.CONTENT_ITEM_TYPE + “‘”,
new String[] {contactid + “”},
null);
if (null != IMCursor)
{
while (IMCursor.moveToNext())
{
String IMType = IMCursor.getString(IMCursor.getColumnIndex(Im.PROTOCOL));
String IMAccount =IMCursor.getString(IMCursor.getColumnIndex(Im.DATA));
int imType = Integer.parseInt(IMType);
if(android.provider.ContactsContract.CommonDataKinds.Im.PROTOCOL_CUSTOM ==imType)
{
/**
* 自定义
*/
}
if (android.provider.ContactsContract.CommonDataKinds.Im.PROTOCOL_AIM ==imType)
{
/**
* AIM
*/
}
if (android.provider.ContactsContract.CommonDataKinds.Im.PROTOCOL_MSN ==imType)
{
/**
* Windows Live 这个大家是不是以为是MSN,开始我也是这么认为但是我用这个数字验证后发现模拟器显示Windows Live
* 很纳闷,望求解
*/
}
if (android.provider.ContactsContract.CommonDataKinds.Im.PROTOCOL_YAHOO ==imType)
{
/**
* 雅虎
*/
}
if (android.provider.ContactsContract.CommonDataKinds.Im.PROTOCOL_SKYPE ==imType)
{
/**
* Skype
*/
}
if (android.provider.ContactsContract.CommonDataKinds.Im.PROTOCOL_QQ ==imType)
{
/**
* QQ
*/
}
if(android.provider.ContactsContract.CommonDataKinds.Im.PROTOCOL_GOOGLE_TALK ==imType)
{
/**
* Google Talk
*/
}
if (android.provider.ContactsContract.CommonDataKinds.Im.PROTOCOL_ICQ ==imType)
{
/**
* ICQ
*/
}
if (android.provider.ContactsContract.CommonDataKinds.Im.PROTOCOL_JABBER ==imType)
{
/**
* Jabber
*/
}
if(android.provider.ContactsContract.CommonDataKinds.Im.PROTOCOL_NETMEETING ==imType)
{
/**
* AIM
*/
}
System.out.println(“IMType->” + IMType + ”IMAccount–>” + IMAccount);
}
}
/**
* 该联系人地址
*/
addressCursor =
cr.query(ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.StructuredPostal.CONTACT_ID+ ” = ” + contactid,
null,
null);
if (null != addressCursor)
{
while (addressCursor.moveToNext())
{
/* 街道 */
String street =
addressCursor.getString(addressCursor.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.STREET));
/* 城市 */
String city =
addressCursor.getString(addressCursor.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.CITY));
/* 省、直辖市、自治区 */
String region =
addressCursor.getString(addressCursor.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.REGION));
/* 邮政编码 */
String postCode =
addressCursor.getString(addressCursor.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE));
String formatAddress =
addressCursor.getString(addressCursor.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.FORMATTED_ADDRESS));
System.out.println(“street–>” + street + ” city–>” + city + ”region–>” + region
+ ” postCode–>” + postCode + ” formatAddress–>”+ formatAddress);
}
}
/**
* 联系人的公司、职务
*/
organizationsCursor =
cr.query(Data.CONTENT_URI,
new String[] {Data._ID, Organization.COMPANY,Organization.TITLE},
Data.CONTACT_ID + ” = ?” + ” AND ” + Data.MIMETYPE +“=’” + Organization.CONTENT_ITEM_TYPE
+ “‘”,
new String[] {contactid + “”},
null);
if (null != organizationsCursor)
{
while (organizationsCursor.moveToNext())
{
String company =
organizationsCursor.getString(organizationsCursor.getColumnIndex(Organization.COMPANY));
String job =
organizationsCursor.getString(organizationsCursor.getColumnIndex(Organization.TITLE));
System.out.println(“company–>” + company + ” job–>” + job);
}
}
/**
* 联系人的备注信息
*/
notesCursor =
cr.query(Data.CONTENT_URI, new String[] {Data._ID,Note.NOTE}, Data.CONTACT_ID + “=?” + ” AND “
+ Data.MIMETYPE + “=’” + Note.CONTENT_ITEM_TYPE + “‘”,new String[] {contactid + “”}, null);
if (null != notesCursor)
{
while (notesCursor.moveToNext())
{
String noteinfo =notesCursor.getString(notesCursor.getColumnIndex(Note.NOTE));
System.err.println(“noteinfo–>” + noteinfo);
}
}
/**
* 联系人的昵称信息
*/
nicknamesCursor =
cr.query(Data.CONTENT_URI,
new String[] {Data._ID, Nickname.NAME},
Data.CONTACT_ID + “=?” + ” AND ” + Data.MIMETYPE +“=’” + Nickname.CONTENT_ITEM_TYPE + “‘”,
new String[] {contactid + “”},
null);
if (null != nicknamesCursor)
{
while (nicknamesCursor.moveToNext())
{
String nickname_ =nicknamesCursor.getString(nicknamesCursor.getColumnIndex(Nickname.NAME));
System.out.println(“nickname_–>” + nickname_);
}
}
/**
* 联系人的网站信息
*/
webSiteCursor =
cr.query(Data.CONTENT_URI, new String[] {Data._ID,Website.URL}, Data.CONTACT_ID + “=?”
+ ” AND ” + Data.MIMETYPE + “=’” +Website.CONTENT_ITEM_TYPE + “‘”, new String[] {contactid
+ “”}, null);
if (null != webSiteCursor)
{
while (webSiteCursor.moveToNext())
{
String webSite =webSiteCursor.getString(webSiteCursor.getColumnIndex(Website.URL));
System.out.println(“webSite–>” + webSite);
}
}
}
}
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
if (null != cursor)
{
cursor.close();
}
if (null != photoCursor)
{
photoCursor.close();
}
if (null != phoneCursor)
{
phoneCursor.close();
}
if (null != emailCursor)
{
emailCursor.close();
}
if (null != IMCursor)
{
IMCursor.close();
}
if (null != addressCursor)
{
addressCursor.close();
}
if (null != organizationsCursor)
{
organizationsCursor.close();
}
if (null != notesCursor)
{
notesCursor.close();
}
if (null != nicknamesCursor)
{
nicknamesCursor.close();
}
if (null != webSiteCursor)
{
webSiteCursor.close();
}
}
}
 QQ 744437114
  疯狂软件官网:http://www.fkjava.org
  疯狂java视频 android视频:http://www.fkjava.org/video.html
跳转到指定楼层
快速回复 返回顶部 返回列表