[android] 02_写联系人到系统联系人列表中

Android 4.0

写联系人到系统联系人列表中


写联系人到系统联系人列表中

// 1、插入数据到raw_contacts中,插入一个id

// a)先查询表raw_contacts,根据_id来写newId

// b) 在原有基础上加1

// c) 然后将其插入到raw_contacts表中

// 2、根据插入的id,向data表中插入联系人的数据

号簿管家

核心代码:

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);
    }
    /**
     * 插入联系人到手机系统联系人列表中
     * 
     * @param view
     */
    public void writeContacts(View view) {
 
        Uri contactUri = Uri.parse("content://com.android.contacts/raw_contacts");
        Uri dataUri = Uri.parse("content://com.android.contacts/data");
        
        ContentResolver resolver = this.getContentResolver();
 
        // 1、插入数据到raw_contacts中,插入一个id
        // a)先查询表raw_contacts,根据_id来写newId
        Cursor cursor = resolver.query(contactUri, new String[]{"_id"}, nullnullnull);
        cursor.moveToLast();
        int _id = cursor.getInt(cursor.getColumnIndex("_id"));
        cursor.close();
        // b) 在原有基础上加1
        int newContactId = _id + 1;
        // c) 然后将其插入到raw_contacts表中
        ContentValues values = new ContentValues();
        values.put("contact_id", newContactId);
        resolver.insert(contactUri, values);
 
        // TODO 这是一个输出,记得删除
        System.out.println("新联系人id:"+newContactId);
 
        // 2、根据插入的id,向data表中插入联系人的数据
 
        ContentValues nameValues = new ContentValues();
        nameValues.put("raw_contact_id", newContactId);
        nameValues.put("data1""hacket小胜");
        nameValues.put("mimetype""vnd.android.cursor.item/name"); // 注意操作的还是那个视图
 
        ContentValues emailValues = new ContentValues();
        emailValues.put("raw_contact_id", newContactId);
        emailValues.put("data1""[email protected]");
        emailValues.put("mimetype""vnd.android.cursor.item/email_v2");
 
        ContentValues phoneValues = new ContentValues();
        phoneValues.put("raw_contact_id", newContactId);
        phoneValues.put("data1""18974677184");
        phoneValues.put("mimetype""vnd.android.cursor.item/phone_v2");
        resolver.insert(dataUri, nameValues);
        resolver.insert(dataUri, emailValues);
        resolver.insert(dataUri, phoneValues);
        
        Toast.makeText(this"写入联系人成功", 0).show();
    }
}

结果:

权限:

android.permission.READ_CONTACTS

android.permission.WRITE_CONTACTS