首页 > 其他分享 >Android联系人增删改查

Android联系人增删改查

时间:2023-02-02 18:45:33浏览次数:41  
标签:String Contacts ContactsContract ops 改查 cursor 增删 Android null

1:申请权限

   <uses-permission android:name="android.permission.READ_CONTACTS"/>
    <uses-permission android:name="android.permission.WRITE_CONTACTS"/>

2:读取联系人

 Cursor cursor = context.getContentResolver()
                .query(ContactsContract.Contacts.CONTENT_URI,
                        null, null, null, null);
        if (cursor == null) {
            Log.e(TAG, "联系人cursor is null");
            return;
        }
        while (cursor.moveToNext()) {
            @SuppressLint("Range") int id = cursor.getInt(cursor.getColumnIndex(ContactsContract.Contacts._ID));
            @SuppressLint("Range") String lastUpdatedTimeStamp = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.CONTACT_LAST_UPDATED_TIMESTAMP));
            @SuppressLint("Range") String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
            Log.e(TAG, "id:" + id + "  name:" + name);
        }

3:删除联系人

    private void delContact2(Context c, String mContactId) {
        ArrayList ops = new ArrayList();
// 先删除子表Contacts中的数据
        ops.add(ContentProviderOperation
                .newDelete(ContactsContract.Contacts.CONTENT_URI)
                .withSelection(
                        ContactsContract.Contacts._ID + "=?",
                        new String[]{String.valueOf(mContactId)})
                .build());
// 然后删除子表Data中的数据
        ops.add(ContentProviderOperation
                .newDelete(ContactsContract.Data.CONTENT_URI)
                .withSelection(
                        ContactsContract.Data.RAW_CONTACT_ID + "=?",
                        new String[]{String.valueOf(mContactId)})
                .build());
// 最后删除父表RawContacts中的数据
        ops.add(ContentProviderOperation
                .newDelete(ContactsContract.RawContacts.CONTENT_URI)
                .withSelection(
                        ContactsContract.RawContacts.CONTACT_ID
                                + "=?",
                        new String[]{String.valueOf(mContactId)})
                .build());
        try {
            getContentResolver().applyBatch(
                    ContactsContract.AUTHORITY, ops);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

标签:String,Contacts,ContactsContract,ops,改查,cursor,增删,Android,null
From: https://www.cnblogs.com/zhjing/p/17087042.html

相关文章

  • MT8788 android 9.0 sensor 驱动移植
    1.硬件配置打开 MT8788 核心板原理图,配置GYRO(陀螺仪),ALSPS(光感),G-sensor(加速度)的ENIT和GPIO以及I2C,打开vendor\mediatek\proprietary\scripts\dct\DrvGen.......
  • Android 逆向
    1:apk文件结构如图所示:assets:存放应用程序的静态资源文件,如图片资源,json配置文件,html离线资源等。注意,assets目录下是支持任意深度的子目录。res:规定的指定文件,图......
  • 注解增删改查
         ......
  • Android Studi导出apk包自定义文件名
    在app的gradle配置文件中的release代码块中放置以下代码android.applicationVariants.all{variant->variant.outputs.all{output->if(outputFileNa......
  • [原创] AndroidStudio新版UI助力开发
    我一直使用的预览版AndroidStudio,没办法主要喜欢采坑,呵呵。今天打开设置页面看到有个beta测试新功能额,就是新版UI界面,目前在测试中。官方描述新版UI是为了降低开发工具......
  • java/Android获取单个文件的MD5值,解决首位0被省略问题,解决超大文件问题,cmd命令行查看
    code来源:https://betheme.net/news/txtlist_i67135v.html?action=onClickcmd命令行查看文件md5码:certutil-hashfilea.txtmd5,不加后面的md5,查看的默认是sha1码。packag......
  • 客服系统即时通讯IM开发(六)Glang Gorm 执行原生Sql语句增删改查封装库【唯一客服】网站
    在开发在线客服系统的时候,有某些地方需要使用脚本去批量执行SQL语句,这个时候就需要使用简单的执行SQL的封装函数了查询操作是使用的原生的sql库,没用Gorm,原因是Gorm的RawS......
  • Android系统权限
    目录声明权限:应用清单中声明需要的权限运行时请求权限:应用运行时请求用户授予权限[Android6.0(API级别23)]权限最佳做法6.0前所有权限添加和6.0后正常权限添加添加方式......
  • android自定义adapter之简单写法
      自定义adapter比较常用,很多人还在使用extendsBaseAdapter,然后写一大堆重复的代码,这里是提供一个封装的工具类,把重复的代码都省略掉,让adapter变的简洁一些。  给......
  • Android全局获取Context上下文实例
    如题,在没有用到Activity的类中也能轻松获取上下文Context实例方法很简单,继承Application,提供获取上下文的静态方法供全局调用在Application类的onCreate()方法中获取Con......