写联系人需求:
1. 在raw_contact表添加一个id
2. 使用这个新添加的id在data表里面添加对应的数据
manifest
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
xml
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="click"
android:text="保存联系人" />
java
package org.gentry.writecontact;
import android.app.Activity;
import android.content.ContentResolver;
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 click(View view) {
// 1.向raw_contact表里面添加联系人的id
ContentResolver resolver = getContentResolver();
// 获取raw_contact表对应的uri
Uri uri = Uri.parse("content://com.android.contacts/raw_contacts");
// 必须知道最后一条联系人的id是多少
Cursor cursor = resolver.query(uri, new String[] { "_id" }, null, null,
null);
cursor.moveToLast();
int lastId = cursor.getInt(0);
int newId = lastId + 1;
ContentValues values = new ContentValues();
values.put("contact_id", newId);
resolver.insert(uri, values);
// 2. 使用添加的联系人的id向data表里面添加数据
Uri dataUri = Uri.parse("content://com.android.contacts/data");
// 电话数据
ContentValues phoneValues = new ContentValues();
phoneValues.put("data1", "8888");
phoneValues.put("mimetype", "vnd.android.cursor.item/phone_v2");
phoneValues.put("raw_contact_id", newId);
resolver.insert(dataUri, phoneValues);
// 邮件数据
ContentValues emailValues = new ContentValues();
emailValues.put("data1", "zhangsan.com");
emailValues.put("mimetype", "vnd.android.cursor.item/email_v2");
emailValues.put("raw_contact_id", newId);
resolver.insert(dataUri, emailValues);
// 姓名数据
ContentValues nameValues = new ContentValues();
nameValues.put("data1", "zhangsan");
nameValues.put("mimetype", "vnd.android.cursor.item/name");
nameValues.put("raw_contact_id", newId);
resolver.insert(dataUri, nameValues);
Toast.makeText(this, "添加成功", Toast.LENGTH_SHORT).show();
}
}