/*********删除通用******************************************************************/

ContentResolver contentResolver = AddContactLog.this.getContentResolver();       contentResolver.delete(Contacts.People.CONTENT_URI, Contacts.People.NAME + "=?", new String[] { "名字" });

/*********before 2.0******************************************************************/

ContentValues values = new ContentValues();        Uri phoneUri = null;        values.put(Contacts.People.NAME, "名字");        values.put(Contacts.People.STARRED, 1);        Uri uri = Contacts.People.createPersonInMyContactsGroup(contentResolver, values);         phoneUri = Uri.withAppendedPath(uri, Contacts.People.Phones.CONTENT_DIRECTORY);        values.clear();        values.put(Contacts.Phones.TYPE, Contacts.Phones.NUMBER);        System.out.println("---------------------------------------");        values.put(Contacts.Phones.NUMBER, serviceNumber);        contentResolver.insert(phoneUri, values);

/*********after 2.0******************************************************************/

// 获取通讯录中所有联系人public void testGetContact() {StringBuffer sb = new StringBuffer();ContentResolver contentResolver = this.getContext().getContentResolver();Uri uri = Uri.parse("content://com.android.contacts/contacts");Cursor cursor = contentResolver.query(uri, null, null, null, null);while (cursor.moveToNext()) {String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));sb.append("contactId=").append(contactId).append(",name=").append(name);Cursor phones = contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = "+ contactId, null, null);while (phones.moveToNext()) {String phone = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));sb.append(",phone=").append(phone); }Cursor emails = contentResolver.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null,ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = "+ contactId, null, null);while (emails.moveToNext()) {String email = emails.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));sb.append(",email=").append(email);}Log.i(TAG, sb.toString());}}

/**************************************************************************/

/*** 首先想RawContacts.CONTENT URI 执行一个空值插入,目的是为了获取返回的rawContactId* 这是后面插入data表的依据,只有执行空值插入,才能使插入的联系人在通讯录里面可见*/public void testInsert() {ContentValues values = new ContentValues();// 首先想RawContacts.CONTENT_URI执行一个空值插入,目的似乎或偶去系统返回的rawContactIdUri rawContactUri = this.getContext().getContentResolver().insert(RawContacts.CONTENT_URI, values);long rawContactId = ContentUris.parseId(rawContactUri);// 往data表入姓名数据values.clear();values.put(Data.RAW_CONTACT_ID, rawContactId);values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);values.put(StructuredName.GIVEN_NAME, "小样");this.getContext().getContentResolver().insert(android.provider.ContactsContract.Data.CONTENT_URI, values); // 往data表入电话数据values.clear();values.put(Data.RAW_CONTACT_ID, rawContactId);values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);values.put(Phone.NUMBER, "12345678901");values.put(Phone.TYPE, Phone.TYPE_MOBILE);this.getContext().getContentResolver().insert(android.provider.ContactsContract.Data.CONTENT_URI, values); // 往data表入Email数据values.clear();values.put(Data.RAW_CONTACT_ID, rawContactId);values.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);values.put(Email.DATA, "ycitdd@126.com");values.put(Email.TYPE, Phone.TYPE_WORK);this.getContext().getContentResolver().insert(android.provider.ContactsContract.Data.CONTENT_URI, values); }

更多相关文章

  1. Android本地数据搜索实现
  2. Android studio连接Bmob云数据库教程
  3. Android清除本地数据缓存代码案例
  4. android通过httpClient请求获取JSON数据并且解析
  5. android nosql 数据库对比 Realm vs ObjectBox
  6. Android-TCPDump for Android(抓TCP数据包工具)
  7. Android移动终端数据同步技术收集贴
  8. Android 短信数据库详细介绍
  9. Android中打电话的数据流程

随机推荐

  1. 为何 JVM TLAB 在线程退还给堆的时候需要
  2. Apache Flink 进阶(四):Flink on Yarn / K8s
  3. Traefik 2 基础授权验证(后篇)
  4. Traefik 2 基础授权验证(前篇)
  5. 算术运算符和表达式
  6. hello 51cto
  7. 如何制作和使用自签名证书
  8. 更简单的 Traefik 2 使用方式
  9. NUC 折腾笔记 - Linux 系统篇
  10. 久等了,全球第二大浏览器终于支持这项重要