- 浏览: 185404 次
- 性别:
- 来自: 浙江
文章分类
最新评论
// 根据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 987使用第三方jar: autobahn-0.5.0.jar 连 ... -
Comparator自定义排序的使用
2017-05-11 14:18 749java对于集合的自定义排序方法有: Arrays.sort ... -
查看Android虚拟机文件相关命令
2017-05-02 14:12 608我们在虚拟机下添加文件后,想查看下文件是否正确创建,可在win ... -
android6.0创建文件问题
2017-05-02 12:58 587Android在6.0有了动态权限管理,在文件创建时就需要动态 ... -
xutils的http模块的简单使用
2017-04-28 16:05 527先导入xutils相关依赖: compile 'org.xut ... -
Litepal的简单使用
2017-04-27 17:21 642相关包下载地址:https://github.com/Lite ... -
Android下拉刷新上拉加载控件的使用
2017-04-21 10:46 852参考链接:http://www.jianshu.com/p/6 ... -
图片加载框架
2017-04-19 16:29 402图片加载框架: picasso ImageLoader -
Android的Service总结
2017-04-17 15:46 461参考链接:http://www.cnblogs.com/lwb ... -
解决ViewPager的addOnPageChangeListener不加载第一个的问题
2017-03-18 17:53 2649今天在使用ViewPager的时候发现个问题。 需求如下: ... -
clone方法的使用
2017-01-04 10:14 555由于Java有引用这一说,当两个变量指向同一块内存时,改变 ... -
Fragment无法切换问题
2016-12-16 14:57 2114Android有一个回收机制,当内存不足时,会自动回收相关内存 ... -
关于Material Design的CollapsingToolbarLayout初次使用
2016-12-16 13:38 614最近了解了下CollapsingToolbarLayout的使 ... -
MVP模式的学习
2016-12-10 15:15 676以前我写代码都是使用MVC模式,这种模式使Activity变得 ... -
Material Design:Android Design Support Library 介绍
2016-12-10 14:14 471参考链接 : https://blog.leancloud.c ... -
SpannableString简介
2016-12-10 14:03 424参考链接: http://www.cnblogs.com/ji ... -
getResources().getDrawable方法的废弃
2016-12-10 13:20 1236参考链接:http://www.jianshu.com/p/e ... -
关于AndroidStudio的Unsupported major.minor version 52.0异常
2016-12-10 13:15 2380参考链接:http://blog.csdn.net/fakin ... -
Android记录
2015-06-01 10:54 642http://tools.android-studio.org ... -
android自定义控件相关使用
2015-04-24 16:53 612用代码简单介绍下自定义控件的使用: 先看主activity: ...
相关推荐
【标题】"C# 通讯录 数据库 源码" 涉及到的核心知识点主要集中在C#编程语言的应用以及数据库的管理上。C#是Microsoft开发的一种面向对象的编程语言,它在Windows平台上广泛用于开发桌面应用、游戏、移动应用等。在这...
Android 绿豆通讯录( SQLite数据库 + ListView数据展示控件 ) https://blog.csdn.net/weixin_44949135/article/details/106029404 采用 SQLite数据库 + ListView数据展示控件,可将用户添加的所有信息,分条...
### 基于C#的Windows CE通讯录数据库应用实例 #### 实验目的 本实验旨在通过实际操作加深学生对ADO.NET数据库编程方法的理解,并掌握其中的关键对象如Connection、Command、DataReader、DataSet、DataAdapter以及...
1.实现根据字母进行分类。...4.实现快捷操作框及其的动画显示/隐藏,上箭头与下箭头的选择性显示及位置匹配。 5.顺便做了个自定义Dialog和完整的发送邮件的实现(主送、抄送、密送、附件、标题、正文)。
总结起来,创建一个C#编写的个人通讯录应用程序涉及了用户界面设计、数据库连接、数据操作等多个方面,需要掌握C#编程基础、数据库管理以及良好的软件工程实践。通过以上步骤,我们可以构建出一个功能完备、用户体验...
### 通讯录数据库课程设计知识点解析 #### 一、课题背景及目的 **课题背景**: 随着信息技术的快速发展,通讯录已经成为人们日常生活中不可或缺的一部分。无论是个人还是企业,都需要有效地管理和利用通讯录信息。...
【简易通讯录数据库(2)】是一个用于存储和管理个人联系信息的系统,它通过数据库技术实现,便于数据的组织和检索。这个项目的核心在于它的简单性和可学习性,适合初学者了解数据库基础和编程实践。 数据库是信息...
- Android系统使用SQLite作为内置的轻量级数据库,用于存储应用数据,如通讯录中的联系人信息。开发者需要了解如何创建数据库、表结构以及执行CRUD(创建、读取、更新、删除)操作。 2. **ContentProvider**: - ...
这个文件可能是相关文档或说明,可能包含了关于如何操作和还原通讯录数据库的详细步骤。阅读并理解这些文档是成功管理和维护通讯录数据库的关键。 此外,还有一个名为“通迅录”的文件,这可能是一个数据库文件本身...
### 通讯录数据库设计详解 在现代信息化社会中,通讯录数据库设计对于个人与企业而言至关重要,它不仅有助于高效管理联系人信息,还能确保信息的安全与完整性。本文将基于提供的内容,深入解析通讯录数据库的设计...
2. **SQLite数据库**:Android内置了SQLite数据库,用于存储通讯录数据。每个联系人信息(姓名、电话号码、电子邮件等)会被保存在特定的数据库表中。开发者需要定义数据库模型,创建表,以及实现增删改查(CRUD)...
在本文中,我们将深入探讨如何使用C#编程语言与Access数据库进行交互,以实现一个功能丰富的通讯录系统。Access数据库是一种流行的轻量级数据库管理系统,适用于小型到中型的应用场景,尤其是在桌面应用中。C#作为...
【Android通讯录源代码】是Android平台上实现联系人管理功能的一种源码实现,它涉及到Android系统的核心组件和服务,包括数据库操作、UI设计、数据存储和检索等关键知识点。在这个源码中,我们可以深入理解Android...
本资源是一个 Android 通讯录小软件的开发实践,包括了 Android 通讯录的开发、 SQLite 数据库的使用、联系人信息的存储和管理等方面的知识点。 一、Android 通讯录的开发 Android 通讯录小软件可以读取手机自带...
【Android通讯录源代码解析】 在移动设备上,通讯录是一个至关重要的功能,它帮助用户存储、管理和查找联系人的信息。本项目是基于Java语言开发的Android通讯录应用,提供了全面的通讯录功能,旨在帮助开发者理解...
android 实现仿微信通讯录android 实现仿微信通讯录android 实现仿微信通讯录android 实现仿微信通讯录android 实现仿微信通讯录android 实现仿微信通讯录android 实现仿微信通讯录android 实现仿微信通讯录android ...
《Android通讯录系统详解——基于adt-bundle-windows的实现》 在移动设备上,通讯录是用户日常使用的重要功能之一。Android系统以其开放性和灵活性,为开发者提供了丰富的API,使得开发自定义通讯录应用成为可能。...
以上是基于Android操作SQLite数据库的一些核心概念和源代码组织方式。实际开发中,还需要考虑数据同步、数据备份、数据加密等高级功能,以及性能优化,如批量插入、使用索引等。学习并理解这些知识点,将有助于你更...
本篇将详细探讨基于Android的通讯录项目,主要涉及的技术点包括SQLite数据库的使用、Android的Content Provider以及Intent通信机制。 首先,SQLite作为Android内置的轻量级数据库,是存储通讯录数据的主要工具。...