就做了个查询、添加联系人的例子,其他系统ContentProvider应该也差不多。
//查询联系人 public void query() { //获得ContentResolver实例 ContentResolver cr = this.getContentResolver(); //定义URI Uri uri = ContactsContract.Contacts.CONTENT_URI; //定义查询数组 // String[] projection = {ContactsContract.Contacts.DISPLAY_NAME,ContactsContract.Contacts._COUNT}; //定义查询条件 // String selection = ContactsContract.Contacts.DISPLAY_NAME +"=?"; //定义查询条件参数 // String[] selectionArgs = {"aaa"}; //排序列 String sortOrder = ContactsContract.Contacts._ID; //查询获得游标 Cursor c = cr.query(uri, null, null, null, sortOrder); //遍历 for(c.moveToFirst();!c.isAfterLast();c.moveToNext()) { Log.i("people","**********************************************************"); //获得联系人的ID号 String contactId = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID)); Log.i("people", "_ID="+contactId); //获得联系人姓名 Log.i("people", "DISPLAY_NAME="+c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME))); //查看该联系人有多少个电话号码 int phoneCount = c.getInt(c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); if(phoneCount>0) { Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID+ " = " + contactId, null, null); for(phones.moveToFirst();!phones.isAfterLast();phones.moveToNext()) { Log.i("people", "NUMBER="+phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER))); } } } Log.i("people","----------------------------------------------------------"); } //添加联系人,name+tel public void insert() { ContentValues values = new ContentValues(); Uri rawContactUri = getContentResolver().insert(ContactsContract.RawContacts.CONTENT_URI, values); long rawContactId = ContentUris.parseId(rawContactUri); //插入姓名 values.clear(); values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId); values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE); values.put(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME, "sq"); values.put(ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME, "c"); getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values); //插入电话号码 values.clear(); values.put(ContactsContract.Contacts.Data.RAW_CONTACT_ID, rawContactId); values.put(ContactsContract.Contacts.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE); values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, "13989297343"); values.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE); getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values); }