在Android中,可以使用编程方式添加联系人。下面是一个示例代码,展示了如何在Android中以编程方式添加联系人:
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)等,可以帮助开发者更好地进行移动应用开发和推广。
领取专属 10元无门槛券
手把手带您无忧上云