首页
学习
活动
专区
工具
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)等,可以帮助开发者更好地进行移动应用开发和推广。

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

相关·内容

18分41秒

041.go的结构体的json序列化

2分29秒

基于实时模型强化学习的无人机自主导航

5分33秒

JSP 在线学习系统myeclipse开发mysql数据库web结构java编程

16分8秒

人工智能新途-用路由器集群模仿神经元集群

领券