对手机里的联系人进行增删改等操作
须要加的权限
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void btnUpdateContact(View view){
//修改系统联系人信息
upadateContact();
}
public void btnAddContact(View view){
addContact();
}
public void btnDeleteContact(View view){
deleteContact();
}
/**
* 向系统添加一个联系人
*/
private void addContact(){
Uri contactUri = Uri.parse("content://com.android.contacts/raw_contacts");
Uri dataUri = Uri.parse("content://com.android.contacts/data");
//_id 自增長 contact_id 這個才是聯係人的id
Cursor cursor = getContentResolver().query(contactUri, new String[]{"_id"}, null, null, null);
cursor.moveToLast();
int lastid = cursor.getInt(0);
//为联系人指定一个id
int id = lastid+1;
//添加一个联系人的id
ContentValues values = new ContentValues();
values.put("contact_id", id);
getContentResolver().insert(contactUri, values);
//向联系人应用添加一个姓名
ContentValues nameValues = new ContentValues();
nameValues.put("raw_contact_id", id);
nameValues.put("mimetype", "vnd.android.cursor.item/name");
nameValues.put("data1", "fenghuabin");
getContentResolver().insert(dataUri, nameValues);
//电话
ContentValues phoneValues = new ContentValues();
phoneValues.put("raw_contact_id", id);
phoneValues.put("mimetype", "vnd.android.cursor.item/phone_v2");
phoneValues.put("data1", "999");
getContentResolver().insert(dataUri, phoneValues);
//邮箱
ContentValues emialValues = new ContentValues();
emialValues.put("raw_contact_id", id);
emialValues.put("mimetype", "vnd.android.cursor.item/email_v2");
emialValues.put("data1", "fenghuabin@baway.com");
getContentResolver().insert(dataUri, emialValues);
Toast.makeText(this, "插入成功", 1).show();
}
/**
* 删除系统联系人
* raw_contact表中的id删除
* data表中的数据要删除
*/
private void deleteContact(){
Uri contactsUri = Uri.parse("content://com.android.contacts/raw_contacts");
Uri dataUri = Uri.parse("content://com.android.contacts/data");
//删除联系人id
getContentResolver().delete(contactsUri,"contact_id = ?", new String[]{"6"});
//删除联系人data表中的数据
getContentResolver().delete(dataUri, "raw_contact_id = ?", new String[]{"6"});
Toast.makeText(this, "删除成功", 1).show();
}
/**
* 向系统修改一个联系人
*/
public void upadateContact(){
Uri dataUri = Uri.parse("content://com.android.contacts/data");
//contact_id
Cursor cursor = getContentResolver().query(dataUri, null, "raw_contact_id = ?", new String[]{"7"}, null);
//遍历
while(cursor.moveToNext()){
String mimetype = cursor.getString(cursor.getColumnIndex("mimetype"));
//判断用户的数据类型
if("vnd.android.cursor.item/phone_v2".equals(mimetype)){
ContentValues values = new ContentValues();
values.put("data1", "123654");
getContentResolver().update(dataUri, values, "raw_contact_id = ? and mimetype = ?", new String[]{"7",mimetype});
}else if("vnd.android.cursor.item/name".equals(mimetype)){
//更新联系人的名字
}
}
Toast.makeText(this, "修改成功", 1).show();
}
}