主要要添加权限:

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(安卓)SDK Manager无法自动更新
  2. Android(安卓)代码改变图片颜色android:tint="@color/main_color
  3. eclipse中关联android源码
  4. 安装Android(安卓)时 SDK AVD MANAGER时更新报错的解决办法
  5. android 代码proguard
  6. Android应用开发相关下载资源(2014/12/14更新)
  7. Android(安卓)SDK下载和更新失败的解决方法
  8. android:launchMode="singleTask" intent获取到的值没有更新
  9. Android应用开发相关下载资源(2014/12/14更新)

随机推荐

  1. ListView中item点击事件、item保持选中状
  2. android 背景shape的使用
  3. Android Display System Surface Flinger
  4. Android 设置进度条背景
  5. Android 消息机制分析
  6. Android源码中添加Livewallpapers(动态墙
  7. Textview 文本旋转,倾斜
  8. Android系统源码给第三方应用开启默认权
  9. Android各种花式酷炫自定义控件开源库集
  10. Android Studio 打包流程