主要要添加权限:

java代码:

  1. <uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>
  2. <uses-permission android:name="android.permission.WRITE_CONTACTS"></uses-permission>
复制代码


删除联系人

java代码:

  1. private void delContact(Context context, String name) {
  2. Cursor cursor = getContentResolver().query(Data.CONTENT_URI,new String[] { Data.RAW_CONTACT_ID },
  3. ContactsContract.Contacts.DISPLAY_NAME + "=?",new String[] { name }, null);
  4. ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
  5. if (cursor.moveToFirst()) {
  6. do {
  7. long Id = cursor.getLong(cursor.getColumnIndex(Data.RAW_CONTACT_ID));
  8. ops.add(ContentProviderOperation.newDelete(
  9. ContentUris.withAppendedId(RawContacts.CONTENT_URI,Id)).build());
  10. try {
  11. getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
  12. }
  13. catch (Exception e){}
  14. } while (cursor.moveToNext());
  15. cursor.close();
  16. }
  17. }
复制代码


更新联系人信息

java代码:

  1. private void updateContact(Context context,String oldname, String name, String phone, String email,String website, String organization, String note) {
  2. Cursor cursor = getContentResolver().query(Data.CONTENT_URI,new String[] { Data.RAW_CONTACT_ID },
  3. ContactsContract.Contacts.DISPLAY_NAME + "=?",new String[] { oldname }, null);
  4. cursor.moveToFirst();
  5. String id = cursor.getString(cursor.getColumnIndex(Data.RAW_CONTACT_ID));
  6. cursor.close();
  7. ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
复制代码


更新电话号码

java代码:

  1. ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
  2. .withSelection(
  3. Data.RAW_CONTACT_ID + "=?" + " AND "+ ContactsContract.Data.MIMETYPE + " = ?" +
  4. " AND " + Phone.TYPE + "=?",new String[] { String.valueOf(id),Phone.CONTENT_ITEM_TYPE,
  5. String.valueOf(Phone.TYPE_HOME) }).withValue(Phone.NUMBER, phone).build());
  6. // 更新email
  7. ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
  8. .withSelection(Data.RAW_CONTACT_ID + "=?" + " AND "+ ContactsContract.Data.MIMETYPE + " = ?" +" AND " + Email.TYPE + "=?",new String[] { String.valueOf(id),Email.CONTENT_ITEM_TYPE,
  9. String.valueOf(Email.TYPE_HOME) }).withValue(Email.DATA, email).build());
  10. // 更新姓名
  11. ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
  12. .withSelection(Data.RAW_CONTACT_ID + "=?" + " AND "+ ContactsContract.Data.MIMETYPE + " = ?",new String[] { String.valueOf(id),StructuredName.CONTENT_ITEM_TYPE }).withValue(StructuredName.DISPLAY_NAME, name).build());
  13. // 更新网站
  14. ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
  15. .withSelection(Data.RAW_CONTACT_ID + "=?" + " AND "+ ContactsContract.Data.MIMETYPE + " = ?",new String[] { String.valueOf(id),Website.CONTENT_ITEM_TYPE }).withValue(Website.URL, website).build());
  16. // 更新公司
  17. ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
  18. .withSelection(Data.RAW_CONTACT_ID + "=?" + " AND "+ ContactsContract.Data.MIMETYPE + " = ?",new String[] { String.valueOf(id),Organization.CONTENT_ITEM_TYPE })
  19. .withValue(Organization.COMPANY, organization).build());
  20. // 更新note
  21. ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
  22. .withSelection(Data.RAW_CONTACT_ID + "=?" + " AND "+ ContactsContract.Data.MIMETYPE + " = ?",new String[] { String.valueOf(id),Note.CONTENT_ITEM_TYPE }).withValue(Note.NOTE, note).build());
  23. try{
  24. getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
  25. } catch (Exception e) {
  26. }
  27. }
复制代码


添加联系人

java代码:

  1. private void addContact(Context context, String name,
  2. String organisation,String phone, String fax, String email, String address,String website){
  3. ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
  4. //在名片表插入一个新名片
  5. ops.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)
  6. .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null).withValue(ContactsContract.RawContacts._ID, 0).withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null).withValue(
  7. ContactsContract.RawContacts.AGGREGATION_MODE,ContactsContract.RawContacts.AGGREGATION_MODE_DISABLED).build());
  8. // add name
  9. //添加一条新名字记录;对应RAW_CONTACT_ID为0的名片
  10. if (!name.equals("")) {
  11. ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
  12. .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0).withValue(
  13. ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE).withValue(
  14. ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME,name).build());
  15. }
  16. //添加昵称
  17. ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
  18. .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0).withValue(
  19. ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.Nickname.CONTENT_ITEM_TYPE).withValue(ContactsContract.CommonDataKinds.Nickname.NAME,"Anson昵称").build());
  20. // add company
  21. if (!organisation.equals("")) {
  22. ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI).withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0).withValue(ContactsContract.Data.MIMETYPE,
  23. ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE).withValue(
  24. ContactsContract.CommonDataKinds.Organization.COMPANY,organisation).withValue(
  25. ContactsContract.CommonDataKinds.Organization.TYPE,ContactsContract.CommonDataKinds.Organization.TYPE_WORK).build());
  26. }
  27. // add phone
  28. if (!phone.equals("")) {
  29. ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
  30. .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
  31. .withValue(ContactsContract.Data.MIMETYPE,
  32. ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE).withValue(ContactsContract.CommonDataKinds.Phone.NUMBER,phone).withValue(ContactsContract.CommonDataKinds.Phone.TYPE,1).build());
  33. }
  34. // add Fax
  35. if (!fax.equals("")) {
  36. ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI).withValueBackReference(
  37. ContactsContract.Data.RAW_CONTACT_ID, 0).withValue(
  38. ContactsContract.Data.MIMETYPE,
  39. ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE).withValue(
  40. ContactsContract.CommonDataKinds.Phone.NUMBER,fax)
  41. .withValue(ContactsContract.CommonDataKinds.Phone.TYPE,
  42. ContactsContract.CommonDataKinds.Phone.TYPE_FAX_WORK).build());
  43. }
  44. // add email
  45. if (!email.equals("")) {
  46. ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
  47. .withValueBackReference(
  48. ContactsContract.Data.RAW_CONTACT_ID, 0).withValue(
  49. ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE).withValue(ContactsContract.CommonDataKinds.Email.DATA,email).withValue(ContactsContract.CommonDataKinds.Email.TYPE,1).build());
  50. }
  51. // add address
  52. if (!address.equals("")) {
  53. ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI).withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0).withValue(
  54. ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE).withValue(
  55. ContactsContract.CommonDataKinds.StructuredPostal.STREET,address)
  56. .withValue(ContactsContract.CommonDataKinds.StructuredPostal.TYPE,
  57. ContactsContract.CommonDataKinds.StructuredPostal.TYPE_WORK).build());
  58. }
  59. // add website
  60. if (!website.equals("")) {
  61. ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
  62. .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
  63. .withValue(ContactsContract.Data.MIMETYPE,
  64. ContactsContract.CommonDataKinds.Website.CONTENT_ITEM_TYPE).withValue(
  65. ContactsContract.CommonDataKinds.Website.URL,website)
  66. .withValue(
  67. ContactsContract.CommonDataKinds.Website.TYPE,
  68. ContactsContract.CommonDataKinds.Website.TYPE_WORK).build());
  69. }
  70. // add IM
  71. String qq1="452824089";
  72. ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI).withValueBackReference(
  73. ContactsContract.Data.RAW_CONTACT_ID, 0).withValue(
  74. ContactsContract.Data.MIMETYPE,
  75. ContactsContract.CommonDataKinds.Im.CONTENT_ITEM_TYPE).withValue(
  76. ContactsContract.CommonDataKinds.Im.DATA1,qq1)
  77. .withValue(
  78. ContactsContract.CommonDataKinds.Im.PROTOCOL,
  79. ContactsContract.CommonDataKinds.Im.PROTOCOL_QQ).build());
  80. // add logo image
  81. // Bitmap bm = logo;
  82. // if (bm != null) {
  83. // ByteArrayOutputStream baos = new ByteArrayOutputStream();
  84. // bm.compress(Bitmap.CompressFormat.PNG, 100, baos);
  85. // byte[] photo = baos.toByteArray();
  86. // if (photo != null) {
  87. //
  88. // ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
  89. // .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
  90. // .withValue(ContactsContract.Data.MIMETYPE,
  91. // ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE)
  92. // .withValue(ContactsContract.CommonDataKinds.Photo.PHOTO, photo)
  93. // .build());
  94. // }
  95. // }
  96. try {
  97. context.getContentResolver().applyBatch(
  98. ContactsContract.AUTHORITY, ops);
  99. } catch (Exception e){
  100. }
  101. }
http://www.eoeandroid.com/forum.php?mod=viewthread&tid=99617

更多相关文章

  1. Android 代码改变图片颜色android:tint="@color/main_color" and
  2. Kotlin 写 Android 单元测试(四),Robolectric 在 JVM 上测试安卓相
  3. android 1.6 联系人
  4. 修改 framework 代码的经验和踩过的坑
  5. android常用颜色代码定义
  6. android 代码proguard

随机推荐

  1. 在 Android(安卓)模拟器中安装 busybox
  2. 第一讲Android简介与环境搭建
  3. Android(安卓)Studio 初体验
  4. Android的TextView组件相关属性
  5. Android平台移植初解
  6. Android显示设备管理以及转屏流程
  7. Android的底层库libutils介绍
  8. android 事件处理(三)
  9. Android系统中的广播(Broadcast)机制注册注
  10. Android设置安装后无界面,只有service在后