首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在 Android 中以编程方式添加联系人?

在Android中,可以使用编程方式添加联系人。下面是一个示例代码,展示了如何在Android中以编程方式添加联系人:

代码语言:java
复制
import android.content.ContentProviderOperation;
import android.content.ContentProviderResult;
import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.ContentValues;
import android.net.Uri;
import android.provider.ContactsContract;

public class ContactUtils {

    public static void addContact(ContentResolver contentResolver, String name, String phoneNumber) {
        ArrayList<ContentProviderOperation> operations = new ArrayList<>();

        // 添加联系人
        ContentProviderOperation.Builder contactBuilder = ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI);
        contactBuilder.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null);
        contactBuilder.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null);
        operations.add(contactBuilder.build());

        // 添加姓名
        ContentProviderOperation.Builder nameBuilder = ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI);
        nameBuilder.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0);
        nameBuilder.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE);
        nameBuilder.withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, name);
        operations.add(nameBuilder.build());

        // 添加电话号码
        ContentProviderOperation.Builder phoneBuilder = ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI);
        phoneBuilder.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0);
        phoneBuilder.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
        phoneBuilder.withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, phoneNumber);
        phoneBuilder.withValue(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE);
        operations.add(phoneBuilder.build());

        try {
            // 执行批量操作
            ContentProviderResult[] results = contentResolver.applyBatch(ContactsContract.AUTHORITY, operations);

            // 获取新添加联系人的URI
            Uri contactUri = results[0].uri;
            long contactId = ContentUris.parseId(contactUri);

            // 添加成功后可以进行其他操作,例如添加头像等
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

使用上述代码,可以通过调用addContact方法来添加联系人。需要传入ContentResolver对象、联系人姓名和电话号码作为参数。该方法会创建一个批量操作列表,然后依次添加联系人和相关信息。最后,通过applyBatch方法执行批量操作,并获取新添加联系人的URI。

这是一个简单的示例,你可以根据实际需求进行修改和扩展。同时,腾讯云提供了丰富的移动开发相关产品,例如腾讯移动分析(https://cloud.tencent.com/product/ma)、腾讯移动推送(https://cloud.tencent.com/product/tpns)等,可以帮助开发者更好地进行移动应用开发和推广。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

何在keras添加自己的优化器(adam等)

一般来说,完成tensorflow以及keras的配置后即可在tensorflow目录下的python目录中找到keras目录,GPU为例keras在tensorflow下的根目录为C:\ProgramData...Anaconda3\envs\tensorflow-gpu\Lib\site-packages\tensorflow\python\keras 3、找到keras目录下的optimizers.py文件并添加自己的优化器...找到optimizers.py的adam等优化器类并在后面添加自己的优化器类 本文来说,我在第718行添加如下代码 @tf_export('keras.optimizers.adamsss') class...# 传入优化器名称: 默认参数将被采用 model.compile(loss=’mean_squared_error’, optimizer=’sgd’) 以上这篇如何在keras添加自己的优化器...(adam等)就是小编分享给大家的全部内容了,希望能给大家一个参考。

45K30

何在 C# 编程方式将 CSV 转为 Excel XLSX 文件

在本文中,小编将为大家介绍如何在Java编程方式将【比特币-美元】市场数据CSV文件转化为XLSX 文件。...这会: 将HttpGet属性 的 Name更新 为 GetBTC-USDChartWorkbook, 将返回类型更改为 FileContentResult, 注释掉与天气预报相关的代码 添加调用GetCsvData...然后,代码在整个表格范围内添加一个StockVOHLC 类型的工作表 (成交量-开盘-高-低-收盘)新图表,设置图表标题,将系列添加到图表,将类别轴单位更改为“月”,更新类别轴刻度标签方向和数字格式,...趋势线蓝色显示成交量的三个月移动平均线 , 绿色显示最高价, 红色显示最低价。...vnd.openxmlformats-officedocument.spreadsheetml.sheet", "BTC_Chart.xlsx"); } } // Get() 运行结果如下所示: 总结 以上就是在C# 编程方式

23010
  • 在 JavaScript 编程方式设置文件输入

    但你可以通过在输入元素上编程设置文件属性来修改文件。...可以在 w3c 规范查看。我的方法在寻找答案时,我在 Stackoverflow 上得到了一堆不赞同的回答和否定。有一个答案告诉 PHP 用户,如果有解决方法,它最终会被 Chrome 构建者禁用。...类似于 `drop` 事件的 `event.dataTransfer`const dataTransfer = new DataTransfer();// 将文件添加到对象的文件列表dataTransfer.items.add...(file);// 将文件列表保存到一个新变量const fileList = dataTransfer.files;// 将输入的 `files` 设置为文件列表fileInput.files =...fileList;根据你的使用情况,你可以触发一个 change 和/或 input 事件模拟实际用户交互:fileInput.dispatchEvent(new Event('change', {

    17000

    何在一台服务器服务方式运行多个EasyCVR程序?

    我们在此前的文章为大家介绍过如何在一台服务器中部署多个EasyCVR,具体配置过程,感兴趣的用户可以戳这篇文章:《流媒体集群应用与配置:如何在一台服务器部署多个EasyCVR?》...这篇文章主要介绍的是以进程的方式运行EasyCVR,今天我们来分享一下如何在一台服务器,让多个EasyCVR服务方式启动。...3)在easycvr.ini配置文件添加以下字段,添加完成后保存关闭。...EasyCVR_Servicedisplay_name=EasyCVR_Servicedescription=EasyCVR_Service4)至此,两个配置文件就完成修改了,随后分别运行ServiceInstall-EasyCVR.exe,服务方式启动...越来越多的用户也逐渐开始部署集群方案,集群作为一种高效的服务协作方式,可以实现负载均衡、分担服务器压力等功能,在视频应用服务可发挥重要的作用。对集群感兴趣的用户可以翻阅我们往期的文章进行了解。

    84430

    详解如何在Android Studio添加RecyclerView-v7支持包

    输入Recycler,只有这两个东西,没有提示RecyclerView,说明支持包没有。 ? 最后一番百度后,终于解决(真不敢想象没有网络的情况下,怎么开发、怎么解决问题)。...4、查看appcompat-v7-23.2.1的属性,里面有源代码引用的位置,在SDK目录下:\extras\android\m2repository\com\android\support\appcompat-v7...按照目录结构,在app的build.gradle的dependencies最后添加了一句: compile ‘com.android.support:recyclerview-v7:23.2.1′...等待Clean完毕后,在External Libraries中看到了期待的recyclerview ?...8、能导入包了,那就编写代码了…… 在\extras\android\support\v7\recyclerview\libs 目录下发现有android-support-v7-recyclerview.jar

    4.3K20

    Android编程实现ListViewitem部分区域添加点击事件功能

    本文实例讲述了Android编程实现ListViewitem部分区域添加点击事件功能。...分享给大家供大家参考,具体如下: 需求如题目:Android listviewitem部分区域添加点击事件,在一个界面显示了listview,但显示的内容分为上下两部分,分别是白色的背景和蓝色的背景,...现在需要只点击蓝色的背景,才能跳转到其他界面,解决方式如下: 一开始想着是不是能在list item的布局给上层布局添加一个: android:clickable="false" android:focusable...更多关于Android相关内容感兴趣的读者可查看本站专题:《Android控件用法总结》、《Android开发入门与进阶教程》、《Android视图View技巧总结》、《Android编程之activity...操作技巧总结》、《Android数据库操作技巧总结》及《Android资源操作技巧汇总》 希望本文所述对大家Android程序设计有所帮助。

    87810

    Android编程权威指南笔记3:Android Fragment讲解与Android Studio的依赖关系,如何添加依赖关系

    这个步骤在以后的代码,你也可以看到,或者你打过,我这里也打过。 创建一个动态UI:FragmentManager提供了对Activity运行时的Fragment的添加、删除、替换的操作。...给个链接你们看:http://blog.csdn.net/lmj623565791/article/details/37970961 Android Studio的依赖关系 在Android Studio...:26.0.0-alpha1' } 如何添加依赖关系 打开android studio软件,选择file–>project structure…菜单项,然后打开project structure,在...进入到该项目中点击中间位置的“Dependencies”后,进行点击添加按钮“+”。弹出的下拉的菜单中进行选择”Module dependency“。然后选中要的添加,点击“OK”即可。...layout开头作用于父组件。(布局参数)

    1.8K30

    Android编程沉浸式状态栏的三种实现方式详解

    本文实例讲述了Android编程沉浸式状态栏的三种实现方式。...首先看下第一种方式 系统的方式沉浸式状态栏实现 步奏一 //当系统版本为4.4或者4.4以上时可以使用沉浸式状态栏 if (Build.VERSION.SDK_INT = Build.VERSION_CODES.KITKAT...接着看下第二种方式 实现思路,添加隐藏布局,然后我们动态的计算状态栏的高度,然后把这个高度设置成这个隐藏的布局的高度,便可以实现 在这里我们通过反射来获取状态栏的高度 /** * 通过反射的方式获取状态栏高度...这个是用的github上的第三方库 1.库地址:https://github.com/jgilfelt/SystemBarTint 2.添加依赖库: compile ‘com.readystatesoftware.systembartint...视图View技巧总结》、《Android操作XML数据技巧总结》、《Android编程之activity操作技巧总结》、《Android文件操作技巧汇总》、《Android开发入门与进阶教程》及《Android

    2.2K10

    【字节码插桩】Android 打包流程 | Android 的字节码操作方式 | AOP 面向切面编程 | APT 编译时技术

    文章目录 一、Android 的 Java 源码打包流程 1、Java 源码打包流程 2、字符串常量池 二、Android 的字节码操作方式 一、Android 的 Java 源码打包流程 --...-- Java 程序在 Java 虚拟机执行前 , 需要先将 Java 源码通过 javac 编译成 .class 字节码文件 , 然后才能在虚拟机运行 ; 1、Java 源码打包流程 Android...的 Java 源码打包流程 : 参考 【Android 安装包优化】APK 打包流程 ( 文件结构 | 打包流程 | 安装流程 | 安卓虚拟机 ) 博客 ; ① 编译资源 R.java 源码 : 使用...字符串内容 偏移量 , 确定有哪些字符 ; 二、Android 的字节码操作方式 ---- 操作字节码的 2 种方式 : AOP : Aspect Oriented Programming ,...面向切面编程 ; APT : 编译时技术 , 注解 , 注解处理器 , Android 依赖库 , 3 件套 ; 参考 Android APT 专栏 ; AOP 和 APT 都可以用于字节码插桩操作

    1.2K10

    聚焦 Android 11: 大功告成

    感谢您在过去的时间里和我们一起深入探索 Android 开发的关键领域。下面来和我们一起回顾这些精彩内容吧: 联系人与身份 您可以探索如何通过 "聊天通知" 实现聊天快捷方式和 Bubble。...最后,您可以收听 Android Backstage 播客系统 UI 团队关于 联系人 和 Bubbles 的访谈内容。...您只需在 build.gradle 文件添加一行代码,就能将 ML 功能添加至自己的应用。...您可以从 Read Reading 团队的访谈 获得更多灵感。 另一个重点是 如何大幅简化为 Android 应用添加自定义模型的过程。...在 Android 11 ,我们引入了多项 隐私改进, 单次授权,利用该功能,用户可授权应用访问设备的麦克风、摄像头或位置信息,但该访问权限仅在授权当时有效。

    2K30

    安卓 training-使用系统权限

    例如,需要发送短信的应用可在清单添加以下代码行: <manifest xmlns:android="http://schemas.android.com/apk/res/android"...请求权限 如果您的应用需要应用清单列出的危险权限,那么,它必须要求用户授予该权限。Android 为您提供了多种权限请求方式。...之前进行,解释应用为什么需要权限中所述。...根据您使用权限的方式,您可以通过其他方式执行您需要的操作(系统 intent、标识符、电话的后台处理),无需依赖敏感信息访问权限。 请注意库所需的权限。添加某个库时,您也会继承它的权限要求。...让系统显式方式访问。在访问敏感功能(例如,相机或麦克风)时提供连续指示,让用户知道您在收集数据,避免让他们认为您偷偷地收集数据。

    1.8K10

    JSBridge小科普

    常用的三方库Dsbridge系列(https://github.com/wendux/DSBridge-Android)。那么,你知道JSBridge到底是如何在两端进行通信的吗?...下面的实例代码,Native端Android为例。 1....jsBridge_native Schema.png 1.2 通过代码注入(针对webView组件) Android为例,可以通过addJavascriptInterface方法将Native的一个对象注入到页面...Android 4.2 之前注入对象的接口是 addJavascriptInterface ,但是由于安全原因慢慢不被使用(4.2以下版本,通过JS可以访问设备SD卡上面的任何内容,甚至是联系人信息,短信等...,在 Webview 上添加 onJsConfirm或onJsPrompt 监听(其实,监听window.console或者window.alert也是可以的,但是这两个方法在JS coding中比较常用

    2.8K30

    android系统分层

    在学习Android硬件抽象层的过程,我们将会学习如何在内核空间编写硬件驱动程序、如何在硬件抽象层添加接口支持访问硬件、如何在系统启动时提供硬件访问服务以及 如何编写JNI使得可以通过Java接口来访问硬件...,而作为中间的一个小插曲,我们还将学习一下如何在Android系统添加一个C可执行程序来访问硬件驱动程序。...二、MVC模式来看Android结构 这里还是拿官方的一个图来简单说明一下Android系统中所蕴藏的MVC模式: ?...等的方式作为View层,当然这里需要进行Java和JavaScript之间的通信,幸运的是,Android提供了它们之间非常方便的通信实现。)...Core Libraries 该核心库提供了Java编程语言核心库的大多数功能。 Dalvik VM, android平台的一个虚拟机,它相当于PCJava的虚拟机JVM。

    1.5K100

    2022年度 FinClip 扩展SDK推荐!

    (更多详细内容请点击)以下分享Android SDK 文件为例,您可登录 资源下载中心下载 Android SDK 文件,扩展 SDK 也处于在所下载的压缩包。...集成方式:implementation 'com.finogeeks.mop:wechat:x.y.z'并在项目的build.gradle文件app/build.gradle)添加您在微信开放平台申请的微信...集成方式:implementation 'com.finogeeks.mop:agora:x.y.z'若您使用导入aar的方式接入声网SDK,需要额外添加声网依赖:implementation 'io.agora.rtc...集成方式:implementation 'com.finogeeks.mop:webrtc:x.y.z'若您使用导入aar的方式接入WebRTCSDK,需要额外添加WebRTC依赖:implementation.../x.y.z须替换为具体的版本号 implementation 'tv.danmaku.ijk.media:ijkplayer-java:0.8.8'}在proguard-rules.pro文件添加混淆规则

    63820

    iOS 9人机界面指南(四):UI元素(下)- 腾讯ISUX

    4.3.2 添加联系人按钮 添加联系人按钮让用户将现有联系人添加到文本框或者其它文字视图中。 ? API注释 想要了解如何在代码定义添加联系人按钮,请参考UIButton....添加联系人按钮: 展示联系人列表 帮助用户将一个联系人添加到当前联系人按钮所在的视图中 使用添加联系人按钮让用户在不需要使用键盘的情况下就可以方便地访问到联系人。...由于添加联系人按钮属于键盘输入联系人方法的替代品,我们不推荐在不支持键盘输入的界面中使用添加联系人按钮。...API注释 想要了解如何在代码定义添加日期时间选择器,请参考UIDatePicker....避免在同一个分段控件,一些分段里使用纯文字,另一些分段里使用纯图。 请在必要时调整分段控件中文本的对齐方式。如果你给分段控件添加了自定义底图,请确保控件里自动居中的文本依然清晰美观。

    13.2K30

    Android查缺补漏(IPC篇)-- 进程间通讯之AIDL详解

    AIDL文件的定向tag:in、out、inout的区别。 如何在AIDL添加权限校验。 一、AIDL是什么?...AIDL是Android可以实现跨进程通讯的一种方案,通过AIDL可以实现RPC方式,所谓RPC是指远程过程调用(Remote Procedure Call),可以简单的理解为就像在本地一样方便的调动远程的方法...在Android的跨进程通讯的方案,只有AIDL可以实现RPC方式。...简要说明一下将要实现的小例子的需求:是一个通讯录,在服务端维护一个List用来存放联系人信息,客户端可以通过RPC方式添加联系人、获取联系列表等功能。...System.out: Contact{phoneNumber=110, name='报警电话', address='派出所'} 接着在三个输入框里面分别输入David,111,david`s home,然后点击添加联系人信息将联系人添加到远程列表里面

    1.8K70

    Android数据存储实现的5大方式

    Android数据存储实现的5大方式 数据存储在开发是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,更加系统详细的介绍了5种存储的方法和异同。...所以不论SharedPreferences的数据存储操作是如何简单,它也只能是存储方式的一种补充,而无法完全替代SQLite数据库这样的其他数据存储方式。...上面的例子我们都是基于联系人信息簿这个标准的Content Provider,现在我们继续来创建一个insertRecord() 方法以对联系人信息簿中进行数据的添加: private void insertRecords...phoneNo); getContentResolver().insert(numberUri, values); } 这样我们就可以调用insertRecords(name, phoneNo)的方式来向联系人信息簿添加联系人姓名和电话号码...大多数Content Provider使用Android文件系统或SQLite数据库来保持数据,但是你也可以任何你想要的方式来存储。 4. 定义你要返回给客户端的数据列名。

    6.7K90

    Android查缺补漏(IPC篇)-- 进程间通讯之AIDL详解

    AIDL文件的定向tag:in、out、inout的区别。 如何在AIDL添加权限校验。 一、AIDL是什么?...AIDL是Android可以实现跨进程通讯的一种方案,通过AIDL可以实现RPC方式,所谓RPC是指远程过程调用(Remote Procedure Call),可以简单的理解为就像在本地一样方便的调动远程的方法...在Android的跨进程通讯的方案,只有AIDL可以实现RPC方式。...简要说明一下将要实现的小例子的需求:是一个通讯录,在服务端维护一个List用来存放联系人信息,客户端可以通过RPC方式添加联系人、获取联系列表等功能。...System.out: Contact{phoneNumber=110, name='报警电话', address='派出所'} 接着在三个输入框里面分别输入David,111,david`s home,然后点击添加联系人信息将联系人添加到远程列表里面

    60840
    领券