当前位置:编程学习 > wap >>

android 通讯录更新联系人不成功

String[] projection = new String[] { Data.RAW_CONTACT_ID, ContactsContract.Contacts.DISPLAY_NAME, Phone.NUMBER };

Cursor cursor = context.getContentResolver().query(Phone.CONTENT_URI, projection, Phone.NUMBER + "=?", new String[] { iphoneID }, "");

cursor.moveToFirst();
String id = cursor.getString(cursor.getColumnIndex(Data.RAW_CONTACT_ID));

cursor.close();
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();

ops.add(ContentProviderOperation
.newUpdate(Data.CONTENT_URI)
.withSelection(

Data.RAW_CONTACT_ID + "=?" + " AND " + ContactsContract.Data.MIMETYPE + " = ?" + " AND " + Phone.TYPE + "=?",
new String[] { String.valueOf(id), Phone.CONTENT_ITEM_TYPE, String.valueOf(Phone.TYPE_MOBILE) })
.withValue(Phone.NUMBER, iphoneID).build());

if (name != null && !name.equals("")) {
// 更新姓名
ops.add(ContentProviderOperation
.newUpdate(Data.CONTENT_URI)
.withSelection(Data.RAW_CONTACT_ID + "=?" + " AND " + ContactsContract.Data.MIMETYPE + " = ?",
new String[] { String.valueOf(id), StructuredName.CONTENT_ITEM_TYPE }).withValue(StructuredName.DISPLAY_NAME, name)
.build());
}

if (company != null && !company.equals("")) {
// 公司
ops.add(ContentProviderOperation
.newUpdate(Data.CONTENT_URI)
.withSelection(
Data.RAW_CONTACT_ID + "=?" + " AND " + ContactsContract.Data.MIMETYPE + " = ?" + " AND " + Organization.TYPE + "=?",
new String[] { String.valueOf(id), Organization.CONTENT_ITEM_TYPE, String.valueOf(Organization.TYPE_WORK) })
.withValue(Organization.COMPANY, company).build());
}
if (depName != null && !depName.equals("")) {
// 职位
ops.add(ContentProviderOperation
.newUpdate(Data.CONTENT_URI)
.withSelection(
Data.RAW_CONTACT_ID + "=?" + " AND " + ContactsContract.Data.MIMETYPE + " = ?" + " AND " + Organization.TYPE + "=?",
new String[] { String.valueOf(id), Organization.CONTENT_ITEM_TYPE, String.valueOf(Organization.TYPE_WORK) })
.withValue(Organization.TITLE, depName).build());
}

if (strEmail != null && !strEmail.equals("")) {
// 更新email
ops.add(ContentProviderOperation
.newUpdate(Data.CONTENT_URI)
.withSelection(Data.RAW_CONTACT_ID + "=?" + " AND " + ContactsContract.Data.MIMETYPE + " = ?" + " AND " + Email.TYPE + "=?",
new String[] { String.valueOf(id), Email.CONTENT_ITEM_TYPE, String.valueOf(Email.TYPE_OTHER) })
.withValue(Email.DATA, strEmail).build());
}

if (officeFax != null && !officeFax.equals("")) {
// 办公传真
ops.add(ContentProviderOperation
.newUpdate(Data.CONTENT_URI)
.withSelection(Data.RAW_CONTACT_ID + "=?" + " AND " + ContactsContract.Data.MIMETYPE + " = ?" + " AND " + Phone.TYPE + "=?",
new String[] { String.valueOf(id), Phone.CONTENT_ITEM_TYPE, String.valueOf(Phone.TYPE_FAX_WORK) })
.withValue(Phone.NUMBER, officeFax).build());
}

if (officeTel != null && !officeTel.equals("")) {
// 办公电话
ops.add(ContentProviderOperation
.newUpdate(Data.CONTENT_URI)
.withSelection(Data.RAW_CONTACT_ID + "=?" + " AND " + ContactsContract.Data.MIMETYPE + " = ?" + " AND " + Phone.TYPE + "=?",
new String[] { String.valueOf(id), Phone.CONTENT_ITEM_TYPE, String.valueOf(Phone.TYPE_WORK) })
.withValue(Phone.NUMBER, officeTel).build());
}
if (homeTel != null && !homeTel.equals("")) {
// 住宅电话
ops.add(ContentProviderOperation
.newUpdate(Data.CONTENT_URI)
.withSelection(Data.RAW_CONTACT_ID + "=?" + " AND " + ContactsContract.Data.MIMETYPE + " = ?" + " AND " + Phone.TYPE + "=?",
new String[] { String.valueOf(id), Phone.CONTENT_ITEM_TYPE, String.valueOf(Phone.TYPE_HOME) })
.withValue(Phone.NUMBER, homeTel).build());
}
if (comAddress != null && !comAddress.equals("")) {
// 联系人地址
ops.add(ContentProviderOperation
.newUpdate(Data.CONTENT_URI)
.withSelection(
Data.RAW_CONTACT_ID + "=?" + " AND " + ContactsContract.Data.MIMETYPE + " = ?" + " AND " + StructuredPostal.TYPE
+ "=?",
new String[] { String.valueOf(id), StructuredPostal.CONTENT_ITEM_TYPE,
String.valueOf(StructuredPostal.FORMATTED_ADDRESS) }).withValue(StructuredPostal.DATA, comAddress).build());
}
if (postCode != null && !postCode.equals("")) {
// 邮编
ops.add(ContentProviderOperation
.newUpdate(Data.CONTENT_URI)
.withSelection(
Data.RAW_CONTACT_ID + "=?" + " AND " + ContactsContract.Data.MIMETYPE + " = ?" + " AND " + StructuredPostal.TYPE
+ "=?",
new String[] { String.valueOf(id), StructuredPostal.CONTENT_ITEM_TYPE, String.valueOf(StructuredPostal.POSTCODE) })
.withValue(StructuredPostal.DATA, postCode).build());
}

try {
resolver.applyBatch(ContactsContract.AUTHORITY, ops);

} catch (Exception e) {
e.printStackTrace();
}


代码如上,知道的大神帮我看看,感激不尽 --------------------编程问答--------------------
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,