关于给指定的联系人添加号码或者email等信息
Cursor cursor1=baseChangeInsideSpec.getContentResolver().query (ContactsContract.RawContacts.CONTENT_URI, null, ContactsContract.RawContacts.CONTACT_ID +"= ?",new String[]{String.valueOf(id)}, null); cursor1.moveToFirst();rowId=cursor1.getString(cursor1.getColumnIndexOrThrow(ContactsContract.RawContacts._ID));cursor1.close(); //先得找到添加内容的concat的rowId//进行插入号码操作 final ContentResolver resolver = baseChangeInsideSpec.getContentResolver(); final ArrayList<ContentProviderOperation> operationList = new ArrayList<ContentProviderOperation>(); ContentProviderOperation.Builder builder = ContentProviderOperation .newInsert(RawContacts.CONTENT_URI); ContentValues values = new ContentValues(); builder.withValues(values); operationList.add(builder.build()); builder = ContentProviderOperation .newInsert(android.provider.ContactsContract.Data.CONTENT_URI); builder.withValue(Phone.RAW_CONTACT_ID,rowid); builder.withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE); builder.withValue(Phone.TYPE, Phone.TYPE_OTHER); builder.withValue(Phone.DATA, number); operationList.add(builder.build()); try { resolver.applyBatch(ContactsContract.AUTHORITY, operationList); } catch (RemoteException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (OperationApplicationException e) { e.printStackTrace(); } ?通过长时间的搜索和查看源代码,终于找到了相应的方法。代码如上
3 楼 oldjue 2012-05-03 这个有用 谢谢 4 楼 wangweike 2012-06-09 很好,指出了使用rowId ,而非rawid