写联系人到系统联系人列表中
写联系人到系统联系人列表中 // 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"}, null, null, null);
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 |