Android中的读取和添加手机联系人

在布局布局文件中只要定义两个按钮,分别是读取联系人的和添加联系人的

在MainActivity中:

 

public class MainActivity extends Activity {

 ContentResolver mContent;//因为要读取手机的数据库,所以要用到接受者

 private Uri dataUri = Uri.parse("content://com.android.contacts/data");

 private Uri contactUri = Uri
   .parse("content://com.android.contacts/raw_contacts");

//这两个URI分别在Android源码中获取,读取信息和该信息的id编号

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  mContent = getContentResolver();

 }

 public void readContacts(View v) {
  Cursor contactcursor = mContent.query(contactUri,
    new String[] { "contact_id" }, null, null, null);//获取id编号,因为id编号和数据是分开的

  while (contactcursor.moveToNext()) {
   int contact_id = contactcursor.getInt(0);

//mimetype是数据类型,如电话,姓名等,不同的数据类型对应不同的INT值

   Cursor datacursor = mContent.query(dataUri, new String[] {
     "mimetype", "data1" }, "raw_contact_id=?",
     new String[] { contact_id + "" }, null);//读取数据

   while (datacursor.moveToNext()) {
    System.out.println(datacursor.getString(0) + "---"
      + datacursor.getString(1));
   }
  }

 }

 public void writeContacts(View v) {
  
  Cursor contactcursor = mContent.query(contactUri,
    new String[] { "contact_id" }, null, null, null);
  
  if(contactcursor != null)
  {
   contactcursor.moveToLast();
  }
  int contact_id=contactcursor.getInt(0);
  
  
  ContentValues values = new ContentValues();
  
  values.put("contact_id", contact_id+1);
  
  mContent.insert(contactUri, values);
  
  ContentValues cv = new ContentValues();
  
  cv.put("mimetype", "vnd.android.cursor.item/phone_v2");
  
  cv.put("data1", "134567890");
  
  cv.put("raw_contact_id",contact_id+1);
  
  mContent.insert(dataUri, cv);
  
  ContentValues cv2=new ContentValues();
  
  cv2.put("mimetype", "vnd.android.cursor.item/name");
  
  cv2.put("raw_contact_id", contact_id+1);
  
  cv2.put("data1", "Tom");
  
  mContent.insert(dataUri, cv2);
  
  contactcursor.close();
  
  Toast.makeText(this, "添加成功", 0).show();
  
 }
}

转载于:https://my.oschina.net/sjh1995/blog/647931

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值