android通讯录

       对通讯录的操作主要操作contacts  data  phone_lookup   raw_contacts  四个表。具体的表结构可以查看File Explorer 中的 data/data/con.android.providers.contacts/databases/contacts2.db

// 添加联系人

public void insertContract () {
ContentResolver resolver = getContentResolver();
Uri uri = Uri.parse("content://com.android.contacts/raw_contacts");
ContentValues values = new ContentValues();
long id = ContentUris.parseId(resolver.insert(uri, values));

values.clear();
values.put(Data.RAW_CONTACT_ID, id);
values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
values.put(StructuredName.DISPLAY_NAME, userid.getText().toString());
resolver.insert(android.provider.ContactsContract.Data.CONTENT_URI,
values);
values.clear();
values.put(Data.RAW_CONTACT_ID, id);
values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
values.put(Phone.NUMBER, phone.getText().toString());
resolver.insert(android.provider.ContactsContract.Data.CONTENT_URI,
values);
values.clear();
values.put(Data.RAW_CONTACT_ID, id);
values.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);
values.put(Email.DATA, email.getText().toString());
resolver.insert(android.provider.ContactsContract.Data.CONTENT_URI,
values);
values.clear();
values.put(Data.RAW_CONTACT_ID, id);
values.put(Data.MIMETYPE, Organization.CONTENT_ITEM_TYPE);
values.put(Organization.COMPANY, company.getText().toString());
resolver.insert(android.provider.ContactsContract.Data.CONTENT_URI,
values);
Toast.makeText(Chakanchengyuanxinxi.this, "添加成功", Toast.LENGTH_SHORT)
.show();
}


// 更新联系人
public void renewContract() {
StringBuffer  sb=new StringBuffer("0");
String[] buff={"0"};
ContentResolver resolver = getContentResolver();
Cursor searchrc_id = resolver.query(
android.provider.ContactsContract.RawContacts.CONTENT_URI,
new String[] { RawContactsEntity._ID, "display_name"},
"display_name=?", new String[] { userid
.getText().toString() }, null);
       if(searchrc_id!=null){
      while(searchrc_id.moveToNext()){
     // _id=searchrc_id.getString(searchrc_id.getColumnIndex(RawContactsEntity._ID));
      sb.append(","+searchrc_id.getString(searchrc_id.getColumnIndex(RawContactsEntity._ID)));
      }      
      searchrc_id.close();
      String  tempstring=new String(sb);System.out.println(tempstring);
      String[] temp=tempstring.split(",");     
      buff=temp;
       }   
      
if (buff.length==1) {
Toast.makeText(Chakanchengyuanxinxi.this, "该用户不存在通讯录中,请添加改用户",
Toast.LENGTH_SHORT).show();
} else {
for(int i=1;i<buff.length;i++){
ContentValues values = new ContentValues();
values.put(Phone.DISPLAY_NAME, userid.getText().toString());
values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
values.put(Data.RAW_CONTACT_ID, buff[i]);
resolver.update(
android.provider.ContactsContract.Data.CONTENT_URI,
values, "mimetype_id=? and raw_contact_id=?", new String[] {""+Phone.TYPE_OTHER, buff[i]});

values.clear();
values.put(Organization.COMPANY, company.getText().toString());
values.put(Data.MIMETYPE, Organization.CONTENT_ITEM_TYPE);
values.put(Data.RAW_CONTACT_ID, buff[i]);
resolver.update(
android.provider.ContactsContract.Data.CONTENT_URI,
values, "mimetype_id=? and raw_contact_id=?", new String[] { ""+Phone.TYPE_FAX_WORK,buff[i]});

values.clear();
values.put(Email.DATA, email.getText().toString());
values.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);
values.put(Data.RAW_CONTACT_ID, buff[i]);
resolver.update(
android.provider.ContactsContract.Data.CONTENT_URI,
values, "mimetype_id=? and raw_contact_id=?", new String[] { ""+Email.TYPE_HOME, buff[i]});

values.clear();
values.put(Phone.NUMBER, phone.getText().toString());
values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
values.put(Data.RAW_CONTACT_ID, buff[i]);
int j=resolver.update(
Data.CONTENT_URI,
values, "mimetype_id=? and raw_contact_id=?", new String[] { ""+Phone.TYPE_FAX_HOME, buff[i]});System.out.println(j+","+Phone.TYPE_FAX_HOME +","+buff[i]);
Toast.makeText(Chakanchengyuanxinxi.this, "更新成功",
Toast.LENGTH_SHORT).show();
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值