首页 > 代码库 > 用ContentProvider向系统增加联系人
用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 @Override26 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 @Override41 public void onClick(View v) {42 ContentValues values = new ContentValues();43 Uri rawContactUri = contentResolver.insert(RawContacts.CONTENT_URI, values);//插入一个空值,目的是增加一条记录,返回该记录的id44 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 }
用ContentProvider向系统增加联系人
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。