用ContentProvider向系统增加联系人

发现对系统的联系人进行操作的api很乱,感觉逻辑有点不清楚......

主要用到这4个类:

android.provider.ContactsContract.CommonDataKinds.Email;
android.provider.ContactsContract.CommonDataKinds.Phone;
android.provider.ContactsContract.CommonDataKinds.StructuredName;
android.provider.ContactsContract.Data;

 1 import android.content.ContentResolver;
 2 import android.content.ContentUris;
 3 import android.content.ContentValues;
 4 import android.net.Uri;
 5 import android.os.Bundle;
 6 import android.provider.ContactsContract.CommonDataKinds.Email;
 7 import android.provider.ContactsContract.CommonDataKinds.Phone;
 8 import android.provider.ContactsContract.CommonDataKinds.StructuredName;
 9 import android.provider.ContactsContract.Data;
10 import android.provider.ContactsContract.RawContacts;
11 import android.support.v7.app.ActionBarActivity;
12 import android.util.Log;
13 import android.view.Menu;
14 import android.view.MenuItem;
15 import android.view.View;
16 import android.widget.Button;
17 import android.widget.EditText;
18 
19 public class MainActivity extends ActionBarActivity {
20     ContentResolver contentResolver;
21     EditText name;
22     EditText phone;
23     EditText emil;
24 
25     @Override
26     protected void onCreate(Bundle savedInstanceState) {
27         super.onCreate(savedInstanceState);
28         setContentView(R.layout.activity_main);
29         name = (EditText) findViewById(R.id.editText_name);
30         phone = (EditText) findViewById(R.id.EditText_phone);
31         emil = (EditText) findViewById(R.id.editText_emil);
32         contentResolver = getContentResolver();
33         Button saveButton = (Button) findViewById(R.id.button_insert);
34         saveButton.setOnClickListener(new MyOnclickListener());
35 
36     }
37 
38     class MyOnclickListener implements View.OnClickListener {
39 
40         @Override
41         public void onClick(View v) {
42             ContentValues values = new ContentValues();
43             Uri rawContactUri = contentResolver.insert(RawContacts.CONTENT_URI, values);//插入一个空值,目的是增加一条记录,返回该记录的id
44             long rawContactId = ContentUris.parseId(rawContactUri);
45             Log.i("csx", "rawContactId:" + rawContactId);
46             // 插入姓名
47             values.clear();
48             values.put(Data.RAW_CONTACT_ID, rawContactId);
49             values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
50             values.put(StructuredName.GIVEN_NAME, name.getText().toString());
51             contentResolver.insert(Data.CONTENT_URI, values);
52             // 插入电话
53             values.clear();
54             values.put(Data.RAW_CONTACT_ID, rawContactId);
55             values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
56             values.put(Phone.NUMBER, phone.getText().toString());
57             values.put(Phone.TYPE, Phone.TYPE_MOBILE);
58             contentResolver.insert(Data.CONTENT_URI, values);
59             // 插入邮箱
60             values.clear();
61             values.put(Data.RAW_CONTACT_ID, rawContactId);
62             values.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);
63             values.put(Email.DATA, emil.getText().toString());
64             values.put(Email.TYPE, Email.TYPE_WORK);
65             contentResolver.insert(Data.CONTENT_URI, values);
66 
67         }
68     }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值