[android] 保存联系人到系统通讯录详解手机开发

对应着读联系人,把数据写进去,市场上的社交类应用经常会有这样的功能

  1. raw_contacts表中添加一个id
  2. data表里面添加对应的数据

获取ContentResolver对象,通过getContentResolver()方法

调用ContentResolver对象的query()方法,查询raw_contacts表,得到Cursor对象

调用Cursor对象的moveToLast()方法,游标移动到最后一行

获取到最后一行记录的contact_id,新的id就是它加上1

调用ContentResolver对象的insert(uri,values)方法,参数:valuesContentValues对象把新的id put()进去

 

获取到ContentResolver对象后调用insert(uri,values)方法,参数:Uri应该是data表的Uri规则,ContentValues对象的,put(key,value)”raw_contact_id”=>上面的id”mimetype”=>”vnd.android.cursor.item/phone_v2”,”data1”=>”电话号码”

 

然后添加姓名,和上面一样只不过在ContentValues对象里面,

Put “mimietype”=>”vnd.android.cursor.item/name”键值对

 

    public void writeContacts(View v){ 
        ContentResolver resolver=getContentResolver(); 
        Uri uri=Uri.parse("content://com.android.contacts/raw_contacts"); 
        Uri dataUri=Uri.parse("content://com.android.contacts/data"); 
        //查出最后一个id 
        Cursor cursor=resolver.query(uri, new String[]{"_id"}, null, null, null); 
        cursor.moveToLast(); 
        int lastId=cursor.getInt(0); 
        int newId=lastId+1; 
        //插入一个联系人id 
        ContentValues values=new ContentValues(); 
        values.put("contact_id", newId); 
        resolver.insert(uri, values); 
        //插入电话数据 
        ContentValues dataValues=new ContentValues(); 
        dataValues.put("raw_contact_id", newId); 
        dataValues.put("mimetype", "vnd.android.cursor.item/phone_v2"); 
        dataValues.put("data1", "110"); 
        resolver.insert(dataUri, dataValues); 
        //插入姓名数据 
        ContentValues data1Values=new ContentValues(); 
        data1Values.put("raw_contact_id", newId); 
        data1Values.put("mimetype", "vnd.android.cursor.item/name"); 
        data1Values.put("data1", "police1"); 
        resolver.insert(dataUri, data1Values); 
         
        Toast.makeText(this, "写联系人成功", 0).show(); 
    }

 

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/5484.html

(0)
上一篇 2021年7月16日
下一篇 2021年7月16日

相关推荐

发表回复

登录后才能评论