保存联系人到系统通讯录

写联系人需求:

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();
	}
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值