- 浏览: 181700 次
- 性别:
- 来自: 浙江
文章分类
最新评论
// 根据ID获得联系人信息实体
private static EnContactBackUp getEnContactBackUp(String id) {
ContentResolver resolver = acApplication.getInstance()
.getContentResolver();
EnContactBackUp contact = new EnContactBackUp();
contact.setId(id);
String value = null;
// 获得昵称
Cursor cur = resolver.query(ContactsContract.Data.CONTENT_URI,
new String[] { Nickname.NAME },
ContactsContract.Data.CONTACT_ID + "=? and "
+ ContactsContract.Data.MIMETYPE + "=?", new String[] {
id, Nickname.CONTENT_ITEM_TYPE }, null);
while (cur.moveToNext()) {
contact.setNickName(cur.getString(0).replaceAll("#", "#")
.replaceAll(",", ",").replaceAll(";", ";")
.replaceAll(":", ":"));
}
cur.close();
// 获得名字序列串
Cursor nameCur = resolver.query(ContactsContract.Data.CONTENT_URI,
new String[] { ContactsContract.Data.DATA4,
ContactsContract.Data.DATA3,
ContactsContract.Data.DATA2,
ContactsContract.Data.DATA5,
ContactsContract.Data.DATA6 },
ContactsContract.Data.CONTACT_ID + "=? and "
+ ContactsContract.Data.MIMETYPE + "=?", new String[] {
id, StructuredName.CONTENT_ITEM_TYPE }, null);
while (nameCur.moveToNext()) {
value = nameCur.getString(0);
contact.setPrefix(value != null ? value.replaceAll("#", "#")
.replaceAll(",", ",").replaceAll(";", ";")
.replaceAll(":", ":").replace(" ", " ") : value);
value = nameCur.getString(1);
contact.setFamilyName(value != null ? value.replaceAll("#", "#")
.replaceAll(",", ",").replaceAll(";", ";")
.replaceAll(":", ":").replace(" ", " ") : value);
value = nameCur.getString(2);
contact.setGivenName(value != null ? value.replaceAll("#", "#")
.replaceAll(",", ",").replaceAll(";", ";")
.replaceAll(":", ":").replace(" ", " ") : value);
value = nameCur.getString(3);
contact.setCenterName(value != null ? value.replaceAll("#", "#")
.replaceAll(",", ",").replaceAll(";", ";")
.replaceAll(":", ":").replace(" ", " ") : value);
value = nameCur.getString(4);
contact.setSuffix(value != null ? value.replaceAll("#", "#")
.replaceAll(",", ",").replaceAll(";", ";")
.replaceAll(":", ":").replace(" ", " ") : value);
}
nameCur.close();
// 根据ID查询通讯录号码
Cursor phoneCursor = resolver.query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
new String[] { ContactsContract.CommonDataKinds.Phone.NUMBER,
ContactsContract.CommonDataKinds.Phone.TYPE },
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=?",
new String[] { id }, null);
System.out.println("phone count " + phoneCursor.getCount());
while (phoneCursor.moveToNext()) {
int type = phoneCursor.getInt(1);
value = phoneCursor.getString(0);
switch (type) {
case Phone.TYPE_HOME:
contact.setHomeTel(value != null ? value.replaceAll("#", "#")
.replaceAll(",", ",").replaceAll(";", ";")
.replaceAll(":", ":").replace(" ", " ") : value);
break;
case Phone.TYPE_MOBILE:
contact.setUsePhone(value != null ? value.replaceAll("#", "#")
.replaceAll(",", ",").replaceAll(";", ";")
.replaceAll(":", ":").replace(" ", " ") : value);
break;
case Phone.TYPE_WORK:
contact.setOfficeTel(value != null ? value.replaceAll("#", "#")
.replaceAll(",", ",").replaceAll(";", ";")
.replaceAll(":", ":").replace(" ", " ") : value);
break;
case Phone.TYPE_FAX_HOME:
contact.setHomeFax(value != null ? value.replaceAll("#", "#")
.replaceAll(",", ",").replaceAll(";", ";")
.replaceAll(":", ":").replace(" ", " ") : value);
break;
case Phone.TYPE_FAX_WORK:
contact.setOfficeFax(value != null ? value.replaceAll("#", "#")
.replaceAll(",", ",").replaceAll(";", ";")
.replaceAll(":", ":").replace(" ", " ") : value);
break;
}
}
phoneCursor.close(); // 关闭游标
// 获得QQ号
Cursor imCur = resolver.query(ContactsContract.Data.CONTENT_URI,
new String[] { Im.DATA, Im.PROTOCOL },
ContactsContract.Data.CONTACT_ID + "=? and "
+ ContactsContract.Data.MIMETYPE + "=?", new String[] {
id, Im.CONTENT_ITEM_TYPE }, null);
while (imCur.moveToNext()) {
int type = imCur.getInt(1);
value = imCur.getString(0);
switch (type) {
case Im.PROTOCOL_QQ: // 匹配为QQ
contact.setQQNum(value != null ? value.replaceAll("#", "#")
.replaceAll(",", ",").replaceAll(";", ";")
.replaceAll(":", ":").replace(" ", " ") : value);
break;
}
}
imCur.close();
// 获得职位和公司
Cursor orgCur = resolver.query(ContactsContract.Data.CONTENT_URI,
new String[] { Organization.COMPANY, Organization.TITLE,
Organization.TYPE }, ContactsContract.Data.CONTACT_ID
+ "=? and " + ContactsContract.Data.MIMETYPE + "=?",
new String[] { id, Organization.CONTENT_ITEM_TYPE }, null);
while (orgCur.moveToNext()) {
int type = orgCur.getInt(2);
switch (type) {
case Organization.TYPE_WORK:
value = orgCur.getString(0);
contact.setCompany(value != null ? value.replaceAll("#", "#")
.replaceAll(",", ",").replaceAll(";", ";")
.replaceAll(":", ":").replace(" ", " ") : value);
value = orgCur.getString(1);
contact.setPisition(value != null ? value.replaceAll("#", "#")
.replaceAll(",", ",").replaceAll(";", ";")
.replaceAll(":", ":").replace(" ", " ") : value);
break;
}
}
orgCur.close();
// 获得备注
Cursor noteCur = resolver.query(ContactsContract.Data.CONTENT_URI,
new String[] { Note.NOTE }, ContactsContract.Data.CONTACT_ID
+ "=? and " + ContactsContract.Data.MIMETYPE + "=?",
new String[] { id, Note.CONTENT_ITEM_TYPE }, null);
while (noteCur.moveToNext()) {
value = noteCur.getString(0);
contact.setNote(value != null ? value.replaceAll("#", "#")
.replaceAll(",", ",").replaceAll(";", ";")
.replaceAll(":", ":").replace(" ", " ") : value);
}
noteCur.close();
// 获得邮箱信息
Cursor emailCur = resolver.query(
ContactsContract.CommonDataKinds.Email.CONTENT_URI,
new String[] { Email.DATA1, Email.TYPE },
ContactsContract.CommonDataKinds.Email.CONTACT_ID + "=? and "
+ ContactsContract.CommonDataKinds.Email.MIMETYPE
+ "=?", new String[] { id, Email.CONTENT_ITEM_TYPE },
null);
while (emailCur.moveToNext()) {
int type = emailCur.getInt(1);
value = emailCur.getString(0);
switch (type) {
case Email.TYPE_HOME:
contact.setHomeMailBox(value != null ? value
.replaceAll("#", "#").replaceAll(",", ",")
.replaceAll(";", ";").replaceAll(":", ":")
.replace(" ", " ") : value);
break;
case Email.TYPE_WORK:
contact.setOfficeMailBox(value != null ? value
.replaceAll("#", "#").replaceAll(",", ",")
.replaceAll(";", ";").replaceAll(":", ":")
.replace(" ", " ") : value);
break;
case Email.TYPE_OTHER:
contact.setElecMailBox(value != null ? value
.replaceAll("#", "#").replaceAll(",", ",")
.replaceAll(";", ";").replaceAll(":", ":")
.replace(" ", " ") : value);
break;
}
}
emailCur.close();
// 获得网址
Cursor webCur = resolver.query(ContactsContract.Data.CONTENT_URI,
new String[] { Website.URL, Website.TYPE },
ContactsContract.CommonDataKinds.Website.CONTACT_ID + "=? and "
+ ContactsContract.CommonDataKinds.Website.MIMETYPE
+ "=?", new String[] { id, Website.CONTENT_ITEM_TYPE },
null);
while (webCur.moveToNext()) {
int type = webCur.getInt(1);
switch (type) {
case Website.TYPE_OTHER:
value = webCur.getString(0);
contact.setPersonWeb(value != null ? value.replaceAll("#", "#")
.replaceAll(",", ",").replaceAll(";", ";")
.replaceAll(":", ":").replace(" ", " ") : value);
break;
}
}
webCur.close();
return contact;
}
// 通讯录还原 添加联系人
public static long updateContact(EnContactBackUp contact) {
// 获得查询分析器
ContentValues values = new ContentValues();
ContentResolver res = acApplication.getInstance().getContentResolver();
String value = null;
// 插入通讯录
Uri rawContactUri = res.insert(
ContactsContract.RawContacts.CONTENT_URI, values);
long rawContactId = ContentUris.parseId(rawContactUri);
values.clear();
value = contact.getNickName();
if (value != null && !value.equals("") && !value.equals(" ")) {
// 设置昵称
values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
values.put(Nickname.NAME, value);
values.put(Data.MIMETYPE, Nickname.CONTENT_ITEM_TYPE);
res.insert(ContactsContract.Data.CONTENT_URI, values);
values.clear();
}
// 设置名字信息
values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
value = contact.getPrefix();
if (value != null && !value.equals("") && !value.equals(" ")) {
values.put(StructuredName.PREFIX, value);
}
value = contact.getFamilyName();
if (value != null && !value.equals("") && !value.equals(" ")) {
values.put(StructuredName.FAMILY_NAME, value);
}
value = contact.getGivenName();
if (value != null && !value.equals("") && !value.equals(" ")) {
values.put(StructuredName.GIVEN_NAME, value);
}
value = contact.getCenterName();
if (value != null && !value.equals("") && !value.equals(" ")) {
values.put(StructuredName.MIDDLE_NAME, value);
}
value = contact.getSuffix();
if (value != null && !value.equals("") && !value.equals(" ")) {
values.put(StructuredName.SUFFIX, value);
}
res.insert(ContactsContract.Data.CONTENT_URI, values);
values.clear();
// 添加手机号码
value = contact.getUsePhone();
if (value != null && !value.equals("")) {
values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, value);
values.put(ContactsContract.CommonDataKinds.Phone.TYPE,
Phone.TYPE_MOBILE);
res.insert(ContactsContract.Data.CONTENT_URI, values);
values.clear();
}
// 添加家庭号码
value = contact.getHomeTel();
if (value != null && !value.equals("")) {
values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, value);
values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
values.put(ContactsContract.CommonDataKinds.Phone.TYPE,
Phone.TYPE_HOME);
res.insert(ContactsContract.Data.CONTENT_URI, values);
values.clear();
}
// 添加单位号码
value = contact.getOfficeTel();
if (value != null && !value.equals("")) {
values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, value);
values.put(ContactsContract.CommonDataKinds.Phone.TYPE,
Phone.TYPE_WORK);
res.insert(ContactsContract.Data.CONTENT_URI, values);
values.clear();
}
// 添加家庭传真
value = contact.getHomeFax();
if (value != null && !value.equals("")) {
values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, value);
values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
values.put(ContactsContract.CommonDataKinds.Phone.TYPE,
Phone.TYPE_FAX_HOME);
res.insert(ContactsContract.Data.CONTENT_URI, values);
values.clear();
}
// 添加办公传真
value = contact.getOfficeFax();
if (value != null && !value.equals("")) {
values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, value);
values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
values.put(ContactsContract.CommonDataKinds.Phone.TYPE,
Phone.TYPE_FAX_WORK);
res.insert(ContactsContract.Data.CONTENT_URI, values);
values.clear();
}
// 添加QQ号码
value = contact.getQQNum();
if (value != null && !value.equals("")) {
values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
values.put(ContactsContract.Data.MIMETYPE, Im.CONTENT_ITEM_TYPE);
values.put(Im.DATA, value);
values.put(Im.PROTOCOL, Im.PROTOCOL_QQ);
res.insert(ContactsContract.Data.CONTENT_URI, values);
values.clear();
}
// 添加公司和职位
if ((contact.getCompany() != null && !contact.getCompany().equals(""))
|| (contact.getPisition() != null && !contact.getPisition()
.equals(""))) {
values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
values.put(ContactsContract.Data.MIMETYPE,
Organization.CONTENT_ITEM_TYPE);
if (contact.getCompany() != null
&& !contact.getCompany().equals("")) {
values.put(Organization.COMPANY, contact.getCompany());
}
if (contact.getPisition() != null
|| !contact.getPisition().equals("")) {
values.put(Organization.TITLE, contact.getPisition());
}
values.put(Organization.TYPE, Organization.TYPE_WORK);
res.insert(ContactsContract.Data.CONTENT_URI, values);
values.clear();
}
// 添加备注
value = contact.getNote();
if (value != null && !value.equals("")) {
values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
values.put(ContactsContract.Data.MIMETYPE, Note.CONTENT_ITEM_TYPE);
values.put(Note.NOTE, value);
res.insert(ContactsContract.Data.CONTENT_URI, values);
values.clear();
}
// 添加电子邮箱
value = contact.getElecMailBox();
if (value != null && !value.equals("")) {
values.put(ContactsContract.CommonDataKinds.Email.RAW_CONTACT_ID,
rawContactId);
values.put(ContactsContract.Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);
values.put(Email.DATA1, value);
values.put(Email.TYPE, Email.TYPE_OTHER);
res.insert(ContactsContract.Data.CONTENT_URI, values);
values.clear();
}
// 添加家庭邮箱
value = contact.getHomeMailBox();
if (value != null && !value.equals("")) {
values.put(ContactsContract.CommonDataKinds.Email.RAW_CONTACT_ID,
rawContactId);
values.put(ContactsContract.Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);
values.put(Email.DATA1, value);
values.put(Email.TYPE, Email.TYPE_HOME);
res.insert(ContactsContract.Data.CONTENT_URI, values);
values.clear();
}
// 添加单位邮箱
value = contact.getOfficeMailBox();
if (value != null && !value.equals("")) {
values.put(ContactsContract.CommonDataKinds.Email.RAW_CONTACT_ID,
rawContactId);
values.put(ContactsContract.Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);
values.put(Email.DATA1, value);
values.put(Email.TYPE, Email.TYPE_WORK);
res.insert(ContactsContract.Data.CONTENT_URI, values);
values.clear();
}
// 添加网站
value = contact.getPersonWeb();
if (value != null && !value.equals("")) {
values.put(ContactsContract.CommonDataKinds.Website.RAW_CONTACT_ID,
rawContactId);
values.put(ContactsContract.Data.MIMETYPE,
Website.CONTENT_ITEM_TYPE);
values.put(Website.URL, value);
values.put(Website.TYPE, Website.TYPE_OTHER);
res.insert(ContactsContract.Data.CONTENT_URI, values);
values.clear();
}
return rawContactId;
}
private static EnContactBackUp getEnContactBackUp(String id) {
ContentResolver resolver = acApplication.getInstance()
.getContentResolver();
EnContactBackUp contact = new EnContactBackUp();
contact.setId(id);
String value = null;
// 获得昵称
Cursor cur = resolver.query(ContactsContract.Data.CONTENT_URI,
new String[] { Nickname.NAME },
ContactsContract.Data.CONTACT_ID + "=? and "
+ ContactsContract.Data.MIMETYPE + "=?", new String[] {
id, Nickname.CONTENT_ITEM_TYPE }, null);
while (cur.moveToNext()) {
contact.setNickName(cur.getString(0).replaceAll("#", "#")
.replaceAll(",", ",").replaceAll(";", ";")
.replaceAll(":", ":"));
}
cur.close();
// 获得名字序列串
Cursor nameCur = resolver.query(ContactsContract.Data.CONTENT_URI,
new String[] { ContactsContract.Data.DATA4,
ContactsContract.Data.DATA3,
ContactsContract.Data.DATA2,
ContactsContract.Data.DATA5,
ContactsContract.Data.DATA6 },
ContactsContract.Data.CONTACT_ID + "=? and "
+ ContactsContract.Data.MIMETYPE + "=?", new String[] {
id, StructuredName.CONTENT_ITEM_TYPE }, null);
while (nameCur.moveToNext()) {
value = nameCur.getString(0);
contact.setPrefix(value != null ? value.replaceAll("#", "#")
.replaceAll(",", ",").replaceAll(";", ";")
.replaceAll(":", ":").replace(" ", " ") : value);
value = nameCur.getString(1);
contact.setFamilyName(value != null ? value.replaceAll("#", "#")
.replaceAll(",", ",").replaceAll(";", ";")
.replaceAll(":", ":").replace(" ", " ") : value);
value = nameCur.getString(2);
contact.setGivenName(value != null ? value.replaceAll("#", "#")
.replaceAll(",", ",").replaceAll(";", ";")
.replaceAll(":", ":").replace(" ", " ") : value);
value = nameCur.getString(3);
contact.setCenterName(value != null ? value.replaceAll("#", "#")
.replaceAll(",", ",").replaceAll(";", ";")
.replaceAll(":", ":").replace(" ", " ") : value);
value = nameCur.getString(4);
contact.setSuffix(value != null ? value.replaceAll("#", "#")
.replaceAll(",", ",").replaceAll(";", ";")
.replaceAll(":", ":").replace(" ", " ") : value);
}
nameCur.close();
// 根据ID查询通讯录号码
Cursor phoneCursor = resolver.query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
new String[] { ContactsContract.CommonDataKinds.Phone.NUMBER,
ContactsContract.CommonDataKinds.Phone.TYPE },
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=?",
new String[] { id }, null);
System.out.println("phone count " + phoneCursor.getCount());
while (phoneCursor.moveToNext()) {
int type = phoneCursor.getInt(1);
value = phoneCursor.getString(0);
switch (type) {
case Phone.TYPE_HOME:
contact.setHomeTel(value != null ? value.replaceAll("#", "#")
.replaceAll(",", ",").replaceAll(";", ";")
.replaceAll(":", ":").replace(" ", " ") : value);
break;
case Phone.TYPE_MOBILE:
contact.setUsePhone(value != null ? value.replaceAll("#", "#")
.replaceAll(",", ",").replaceAll(";", ";")
.replaceAll(":", ":").replace(" ", " ") : value);
break;
case Phone.TYPE_WORK:
contact.setOfficeTel(value != null ? value.replaceAll("#", "#")
.replaceAll(",", ",").replaceAll(";", ";")
.replaceAll(":", ":").replace(" ", " ") : value);
break;
case Phone.TYPE_FAX_HOME:
contact.setHomeFax(value != null ? value.replaceAll("#", "#")
.replaceAll(",", ",").replaceAll(";", ";")
.replaceAll(":", ":").replace(" ", " ") : value);
break;
case Phone.TYPE_FAX_WORK:
contact.setOfficeFax(value != null ? value.replaceAll("#", "#")
.replaceAll(",", ",").replaceAll(";", ";")
.replaceAll(":", ":").replace(" ", " ") : value);
break;
}
}
phoneCursor.close(); // 关闭游标
// 获得QQ号
Cursor imCur = resolver.query(ContactsContract.Data.CONTENT_URI,
new String[] { Im.DATA, Im.PROTOCOL },
ContactsContract.Data.CONTACT_ID + "=? and "
+ ContactsContract.Data.MIMETYPE + "=?", new String[] {
id, Im.CONTENT_ITEM_TYPE }, null);
while (imCur.moveToNext()) {
int type = imCur.getInt(1);
value = imCur.getString(0);
switch (type) {
case Im.PROTOCOL_QQ: // 匹配为QQ
contact.setQQNum(value != null ? value.replaceAll("#", "#")
.replaceAll(",", ",").replaceAll(";", ";")
.replaceAll(":", ":").replace(" ", " ") : value);
break;
}
}
imCur.close();
// 获得职位和公司
Cursor orgCur = resolver.query(ContactsContract.Data.CONTENT_URI,
new String[] { Organization.COMPANY, Organization.TITLE,
Organization.TYPE }, ContactsContract.Data.CONTACT_ID
+ "=? and " + ContactsContract.Data.MIMETYPE + "=?",
new String[] { id, Organization.CONTENT_ITEM_TYPE }, null);
while (orgCur.moveToNext()) {
int type = orgCur.getInt(2);
switch (type) {
case Organization.TYPE_WORK:
value = orgCur.getString(0);
contact.setCompany(value != null ? value.replaceAll("#", "#")
.replaceAll(",", ",").replaceAll(";", ";")
.replaceAll(":", ":").replace(" ", " ") : value);
value = orgCur.getString(1);
contact.setPisition(value != null ? value.replaceAll("#", "#")
.replaceAll(",", ",").replaceAll(";", ";")
.replaceAll(":", ":").replace(" ", " ") : value);
break;
}
}
orgCur.close();
// 获得备注
Cursor noteCur = resolver.query(ContactsContract.Data.CONTENT_URI,
new String[] { Note.NOTE }, ContactsContract.Data.CONTACT_ID
+ "=? and " + ContactsContract.Data.MIMETYPE + "=?",
new String[] { id, Note.CONTENT_ITEM_TYPE }, null);
while (noteCur.moveToNext()) {
value = noteCur.getString(0);
contact.setNote(value != null ? value.replaceAll("#", "#")
.replaceAll(",", ",").replaceAll(";", ";")
.replaceAll(":", ":").replace(" ", " ") : value);
}
noteCur.close();
// 获得邮箱信息
Cursor emailCur = resolver.query(
ContactsContract.CommonDataKinds.Email.CONTENT_URI,
new String[] { Email.DATA1, Email.TYPE },
ContactsContract.CommonDataKinds.Email.CONTACT_ID + "=? and "
+ ContactsContract.CommonDataKinds.Email.MIMETYPE
+ "=?", new String[] { id, Email.CONTENT_ITEM_TYPE },
null);
while (emailCur.moveToNext()) {
int type = emailCur.getInt(1);
value = emailCur.getString(0);
switch (type) {
case Email.TYPE_HOME:
contact.setHomeMailBox(value != null ? value
.replaceAll("#", "#").replaceAll(",", ",")
.replaceAll(";", ";").replaceAll(":", ":")
.replace(" ", " ") : value);
break;
case Email.TYPE_WORK:
contact.setOfficeMailBox(value != null ? value
.replaceAll("#", "#").replaceAll(",", ",")
.replaceAll(";", ";").replaceAll(":", ":")
.replace(" ", " ") : value);
break;
case Email.TYPE_OTHER:
contact.setElecMailBox(value != null ? value
.replaceAll("#", "#").replaceAll(",", ",")
.replaceAll(";", ";").replaceAll(":", ":")
.replace(" ", " ") : value);
break;
}
}
emailCur.close();
// 获得网址
Cursor webCur = resolver.query(ContactsContract.Data.CONTENT_URI,
new String[] { Website.URL, Website.TYPE },
ContactsContract.CommonDataKinds.Website.CONTACT_ID + "=? and "
+ ContactsContract.CommonDataKinds.Website.MIMETYPE
+ "=?", new String[] { id, Website.CONTENT_ITEM_TYPE },
null);
while (webCur.moveToNext()) {
int type = webCur.getInt(1);
switch (type) {
case Website.TYPE_OTHER:
value = webCur.getString(0);
contact.setPersonWeb(value != null ? value.replaceAll("#", "#")
.replaceAll(",", ",").replaceAll(";", ";")
.replaceAll(":", ":").replace(" ", " ") : value);
break;
}
}
webCur.close();
return contact;
}
// 通讯录还原 添加联系人
public static long updateContact(EnContactBackUp contact) {
// 获得查询分析器
ContentValues values = new ContentValues();
ContentResolver res = acApplication.getInstance().getContentResolver();
String value = null;
// 插入通讯录
Uri rawContactUri = res.insert(
ContactsContract.RawContacts.CONTENT_URI, values);
long rawContactId = ContentUris.parseId(rawContactUri);
values.clear();
value = contact.getNickName();
if (value != null && !value.equals("") && !value.equals(" ")) {
// 设置昵称
values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
values.put(Nickname.NAME, value);
values.put(Data.MIMETYPE, Nickname.CONTENT_ITEM_TYPE);
res.insert(ContactsContract.Data.CONTENT_URI, values);
values.clear();
}
// 设置名字信息
values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
value = contact.getPrefix();
if (value != null && !value.equals("") && !value.equals(" ")) {
values.put(StructuredName.PREFIX, value);
}
value = contact.getFamilyName();
if (value != null && !value.equals("") && !value.equals(" ")) {
values.put(StructuredName.FAMILY_NAME, value);
}
value = contact.getGivenName();
if (value != null && !value.equals("") && !value.equals(" ")) {
values.put(StructuredName.GIVEN_NAME, value);
}
value = contact.getCenterName();
if (value != null && !value.equals("") && !value.equals(" ")) {
values.put(StructuredName.MIDDLE_NAME, value);
}
value = contact.getSuffix();
if (value != null && !value.equals("") && !value.equals(" ")) {
values.put(StructuredName.SUFFIX, value);
}
res.insert(ContactsContract.Data.CONTENT_URI, values);
values.clear();
// 添加手机号码
value = contact.getUsePhone();
if (value != null && !value.equals("")) {
values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, value);
values.put(ContactsContract.CommonDataKinds.Phone.TYPE,
Phone.TYPE_MOBILE);
res.insert(ContactsContract.Data.CONTENT_URI, values);
values.clear();
}
// 添加家庭号码
value = contact.getHomeTel();
if (value != null && !value.equals("")) {
values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, value);
values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
values.put(ContactsContract.CommonDataKinds.Phone.TYPE,
Phone.TYPE_HOME);
res.insert(ContactsContract.Data.CONTENT_URI, values);
values.clear();
}
// 添加单位号码
value = contact.getOfficeTel();
if (value != null && !value.equals("")) {
values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, value);
values.put(ContactsContract.CommonDataKinds.Phone.TYPE,
Phone.TYPE_WORK);
res.insert(ContactsContract.Data.CONTENT_URI, values);
values.clear();
}
// 添加家庭传真
value = contact.getHomeFax();
if (value != null && !value.equals("")) {
values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, value);
values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
values.put(ContactsContract.CommonDataKinds.Phone.TYPE,
Phone.TYPE_FAX_HOME);
res.insert(ContactsContract.Data.CONTENT_URI, values);
values.clear();
}
// 添加办公传真
value = contact.getOfficeFax();
if (value != null && !value.equals("")) {
values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, value);
values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
values.put(ContactsContract.CommonDataKinds.Phone.TYPE,
Phone.TYPE_FAX_WORK);
res.insert(ContactsContract.Data.CONTENT_URI, values);
values.clear();
}
// 添加QQ号码
value = contact.getQQNum();
if (value != null && !value.equals("")) {
values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
values.put(ContactsContract.Data.MIMETYPE, Im.CONTENT_ITEM_TYPE);
values.put(Im.DATA, value);
values.put(Im.PROTOCOL, Im.PROTOCOL_QQ);
res.insert(ContactsContract.Data.CONTENT_URI, values);
values.clear();
}
// 添加公司和职位
if ((contact.getCompany() != null && !contact.getCompany().equals(""))
|| (contact.getPisition() != null && !contact.getPisition()
.equals(""))) {
values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
values.put(ContactsContract.Data.MIMETYPE,
Organization.CONTENT_ITEM_TYPE);
if (contact.getCompany() != null
&& !contact.getCompany().equals("")) {
values.put(Organization.COMPANY, contact.getCompany());
}
if (contact.getPisition() != null
|| !contact.getPisition().equals("")) {
values.put(Organization.TITLE, contact.getPisition());
}
values.put(Organization.TYPE, Organization.TYPE_WORK);
res.insert(ContactsContract.Data.CONTENT_URI, values);
values.clear();
}
// 添加备注
value = contact.getNote();
if (value != null && !value.equals("")) {
values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
values.put(ContactsContract.Data.MIMETYPE, Note.CONTENT_ITEM_TYPE);
values.put(Note.NOTE, value);
res.insert(ContactsContract.Data.CONTENT_URI, values);
values.clear();
}
// 添加电子邮箱
value = contact.getElecMailBox();
if (value != null && !value.equals("")) {
values.put(ContactsContract.CommonDataKinds.Email.RAW_CONTACT_ID,
rawContactId);
values.put(ContactsContract.Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);
values.put(Email.DATA1, value);
values.put(Email.TYPE, Email.TYPE_OTHER);
res.insert(ContactsContract.Data.CONTENT_URI, values);
values.clear();
}
// 添加家庭邮箱
value = contact.getHomeMailBox();
if (value != null && !value.equals("")) {
values.put(ContactsContract.CommonDataKinds.Email.RAW_CONTACT_ID,
rawContactId);
values.put(ContactsContract.Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);
values.put(Email.DATA1, value);
values.put(Email.TYPE, Email.TYPE_HOME);
res.insert(ContactsContract.Data.CONTENT_URI, values);
values.clear();
}
// 添加单位邮箱
value = contact.getOfficeMailBox();
if (value != null && !value.equals("")) {
values.put(ContactsContract.CommonDataKinds.Email.RAW_CONTACT_ID,
rawContactId);
values.put(ContactsContract.Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);
values.put(Email.DATA1, value);
values.put(Email.TYPE, Email.TYPE_WORK);
res.insert(ContactsContract.Data.CONTENT_URI, values);
values.clear();
}
// 添加网站
value = contact.getPersonWeb();
if (value != null && !value.equals("")) {
values.put(ContactsContract.CommonDataKinds.Website.RAW_CONTACT_ID,
rawContactId);
values.put(ContactsContract.Data.MIMETYPE,
Website.CONTENT_ITEM_TYPE);
values.put(Website.URL, value);
values.put(Website.TYPE, Website.TYPE_OTHER);
res.insert(ContactsContract.Data.CONTENT_URI, values);
values.clear();
}
return rawContactId;
}
发表评论
-
关于Android的webSocket的简单使用
2017-05-12 14:34 935使用第三方jar: autobahn-0.5.0.jar 连 ... -
Comparator自定义排序的使用
2017-05-11 14:18 720java对于集合的自定义排序方法有: Arrays.sort ... -
查看Android虚拟机文件相关命令
2017-05-02 14:12 529我们在虚拟机下添加文件后,想查看下文件是否正确创建,可在win ... -
android6.0创建文件问题
2017-05-02 12:58 550Android在6.0有了动态权限管理,在文件创建时就需要动态 ... -
xutils的http模块的简单使用
2017-04-28 16:05 488先导入xutils相关依赖: compile 'org.xut ... -
Litepal的简单使用
2017-04-27 17:21 602相关包下载地址:https://github.com/Lite ... -
Android下拉刷新上拉加载控件的使用
2017-04-21 10:46 805参考链接:http://www.jianshu.com/p/6 ... -
图片加载框架
2017-04-19 16:29 372图片加载框架: picasso ImageLoader -
Android的Service总结
2017-04-17 15:46 424参考链接:http://www.cnblogs.com/lwb ... -
解决ViewPager的addOnPageChangeListener不加载第一个的问题
2017-03-18 17:53 2590今天在使用ViewPager的时候发现个问题。 需求如下: ... -
clone方法的使用
2017-01-04 10:14 522由于Java有引用这一说,当两个变量指向同一块内存时,改变 ... -
Fragment无法切换问题
2016-12-16 14:57 2080Android有一个回收机制,当内存不足时,会自动回收相关内存 ... -
关于Material Design的CollapsingToolbarLayout初次使用
2016-12-16 13:38 579最近了解了下CollapsingToolbarLayout的使 ... -
MVP模式的学习
2016-12-10 15:15 622以前我写代码都是使用MVC模式,这种模式使Activity变得 ... -
Material Design:Android Design Support Library 介绍
2016-12-10 14:14 429参考链接 : https://blog.leancloud.c ... -
SpannableString简介
2016-12-10 14:03 388参考链接: http://www.cnblogs.com/ji ... -
getResources().getDrawable方法的废弃
2016-12-10 13:20 1164参考链接:http://www.jianshu.com/p/e ... -
关于AndroidStudio的Unsupported major.minor version 52.0异常
2016-12-10 13:15 2345参考链接:http://blog.csdn.net/fakin ... -
Android记录
2015-06-01 10:54 610http://tools.android-studio.org ... -
android自定义控件相关使用
2015-04-24 16:53 576用代码简单介绍下自定义控件的使用: 先看主activity: ...
相关推荐
Android 绿豆通讯录( SQLite数据库 + ListView数据展示控件 ) https://blog.csdn.net/weixin_44949135/article/details/106029404 采用 SQLite数据库 + ListView数据展示控件,可将用户添加的所有信息,分条...
1.实现根据字母进行分类。...4.实现快捷操作框及其的动画显示/隐藏,上箭头与下箭头的选择性显示及位置匹配。 5.顺便做了个自定义Dialog和完整的发送邮件的实现(主送、抄送、密送、附件、标题、正文)。
通讯录代码数据库 通讯录代通讯录代码数据库码数据库通讯录代码数据库通讯录代码数据库
基于C#的windows CE 系统的通讯录数据库应用实例
小巧的C# 通讯录 源码 数据库都有 里面包含了所有的数据库增删改查操作
通讯录数据库设计 大家可以看一看
数据库课程设计 java 个人通讯录的设计 主要解决通讯录应用的管理问题
这个个人通讯录里面有登录界面,注册界面,数据库连接,以及主窗口设计等等
简易通讯录数据库(2)详细代码,简单易懂,易于学习
Android写通讯录 用到的数据库知识
Android通讯录源码Android通讯录源码Android通讯录源码
应用access作为数据库的通讯录 有图片功能 能删除 添加修改 联系人 还支持listview排序
Android通讯录附搜索及字母索引Demo,基于网友的版本改进,修复搜索异常的bug
android操作数据库sqllite源代码,有需要的朋友可以拿走
android 实现仿微信通讯录android 实现仿微信通讯录android 实现仿微信通讯录android 实现仿微信通讯录android 实现仿微信通讯录android 实现仿微信通讯录android 实现仿微信通讯录android 实现仿微信通讯录android ...
通讯录 数据库源文件通讯录 数据库源文件
上传一个最近做的操作android通讯录的代码吧。 当时找了很久也没找到,大部分帖子都是抄袭人家的,功能没有实现也不说给改改。连名字都不改就上传,悲剧。 如有问题,随时与我联系,代码里有邮件地址
关于对Android通讯录的增、删、改、查的操作代码很全面!
android通讯录简单项目源码android通讯录简单项目源码android通讯录简单项目源码
数据库多部门通讯录数据库多部门通讯录