[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();
    }
复制代码

 

posted @   唯一客服系统开发笔记  阅读(2519)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示
1
chat with us