package com.example.contactdemos.test;
import java.util.ArrayList;
import android.content.ContentProviderOperation;
import android.content.ContentProviderResult;
import android.content.OperationApplicationException;
import android.os.RemoteException;
import android.provider.ContactsContract;
import android.test.AndroidTestCase;
public class ContactsTest extends AndroidTestCase {
/**
* 根据主键ID更新
*/
public void updateByData_ID() {
ArrayList ops = new ArrayList();
// 把与这个display_name关联的data2,data3,data5清空,主要是保证(raw_contacts表中的display_name的正确性)
ContentProviderOperation operation = ContentProviderOperation
.newUpdate(ContactsContract.Data.CONTENT_URI)
.withSelection(ContactsContract.Data._ID + "=?",
new String[] { String.valueOf(1) })
.withValue(
ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME,// 对应data表中的data2字段
null)
.withValue(
ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME,// 对应data表中的data3字段
null)
.withValue(
ContactsContract.CommonDataKinds.StructuredName.MIDDLE_NAME,// 对应data表中的data5字段
null)
.withValue(
ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME,// 对应data表中的data1字段
"陈红军").build();
ops.add(operation);
try {
ContentProviderResult rs[] = getContext().getContentResolver()
.applyBatch(ContactsContract.AUTHORITY, ops);
for (ContentProviderResult s : rs) {
System.out.println(s.toString());
}
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (OperationApplicationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 根据raw_contact_id和mimetype更新的操作
*/
public void updateByRawContactIdAndMimeType() {
ArrayList ops = new ArrayList();
// 把与这个display_name关联的data2,data3,data5清空,主要是保证(raw_contacts表中的display_name的正确性)
ContentProviderOperation operation = ContentProviderOperation
.newUpdate(ContactsContract.Data.CONTENT_URI)
.withSelection(
ContactsContract.Data.RAW_CONTACT_ID + "=?" + " AND "
+ ContactsContract.Data.MIMETYPE + "=?",
new String[] {
String.valueOf(1),
ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE })
.withValue(
ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME, // 对应data表中的data2字段
null)
.withValue(
ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME, // 对应data表中的data3字段
null)
.withValue(
ContactsContract.CommonDataKinds.StructuredName.MIDDLE_NAME,// 对应data表中的data5字段
null)
.withValue(
ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME,// 对应data表中的data1字段
"夏淑琼").build();
ops.add(operation);
try {
ContentProviderResult rs[] = getContext().getContentResolver()
.applyBatch(ContactsContract.AUTHORITY, ops);
for (ContentProviderResult s : rs) {
System.out.println(s.toString());
}
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (OperationApplicationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}