使用ContentProvider管理联系人 (七)

2014-11-24 10:21:36 · 作者: · 浏览: 7
(Email.DATA, emailText.getText().toString());
// 添加联系人的email
getContentResolver().insert(ContactsContract.Data.CONTENT_URI,
values);
}
finish();
}
if (v.getId() == R.id.add_contact_main_btn_back) {
finish();
}
}
}

package com.lovo.activity;

import android.app.Activity;
import android.content.ContentUris;
import android.content.ContentValues;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.provider.ContactsContract.CommonDataKinds.Email;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.ContactsContract.CommonDataKinds.StructuredName;
import android.provider.ContactsContract.Data;
import android.provider.ContactsContract.RawContacts;
import android.view.View;
import android.widget.EditText;

import com.lovo.lesson15.R;

public class SaveContactActivity extends Activity {
private EditText nameText;
private EditText phoneText;
private EditText emailText;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.add_contact_main);
nameText = (EditText) findViewById(R.id.add_contact_main_et_name);
phoneText = (EditText) findViewById(R.id.add_contact_main_et_phone);
emailText = (EditText) findViewById(R.id.add_contact_main_et_email);
}

public void click(View v) {
if (v.getId() == R.id.add_contact_main_btn_ok) {
ContentValues values = new ContentValues();
// 添加一条空数据并获取其ID,此ID为当前增加的联系人ID
Uri uri = getContentResolver().insert(RawContacts.CONTENT_URI,
values);
// 使用工具类ContentUris来解析Uri中的ID
long contactId = ContentUris.parseId(uri);
// 添加联系人的姓名
if (nameText.getText() != null
&& !"".equals(nameText.getText().toString().trim())) {
// 将ContentValues里面的所有内容清空
values.clear();
// 增加联系人ID
values.put(Data.RAW_CONTACT_ID, contactId);
// 指定要添加联系人姓名的MIME类型
values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
// 指定要添加联系人的姓名
values.put(StructuredName.GIVEN_NAME, nameText.getText()
.toString());
// 添加联系人的姓名
getContentResolver().insert(ContactsContract.Data.CONTENT_URI,
values);
}

// 添加联系人的电话
if (phoneText.getText() != null
&& !"".equals(phoneText.getText().toString().trim())) {
// 将ContentValues里面的所有内容清空
values.clear();
// 增加联系人ID
values.put(Data.RAW_CONTACT_ID, contactId);
// 指定要添加联系人电话的MIME类型
values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
// 指定要添加的联系人电话的类型
values.put(Phone.TYPE, Phone.TYPE_MOBILE);
// 制定要添加联系人的电话
values.put(Phone.NUMBER, phoneText.getText().toString());
// 添加联系人的电话
getContentResolver().insert(ContactsContract.Data.CONTENT_URI,
values);
}

// 添加联系人的email
if (emailText.getText() != null
&& !"".equals(emailText.getText().toString().trim())) {
// 将ContentValues里面的所有内容清空
values.clear();
// 增加联系人ID
values.put(Data.RAW_CONTACT_ID, contactId);
// 指定要添加联系人email的MIME类型
values.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);
// 指定要添加的联系人email的类型
value