2012-11-22 80 views
0

我需要在群组中插入联系人。我有团队的身份证。但我不能。不知道为什么。在群组中添加联系人

任何人都可以帮助我吗?

这是我的代码。

ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); 
Account[] accounts = AccountManager.get(getActivity()).getAccounts(); 
String accountName = null; 
String accountType = null; 
String account = "[email protected]"; 
    for(Account account2 : accounts) 
     if(account2.name.equals(account)){ 
      accountName = account2.name; 
      accountType = account2.type; 
     } 
ops.add(ContentProviderOperation 
     .newInsert(ContactsContract.RawContacts.CONTENT_URI) 
     .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, accountType) 
     .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, accountName) 
     .build()); 

ops.add(ContentProviderOperation 
     .newAssertQuery(ContactsContract.Groups.CONTENT_URI) 
     .withSelection(ContactsContract.Groups._ID + "=?", new String[]{Long.toString(idGroup)}) 
     .withExpectedCount(1) 
     .build()); 

ops.add(ContentProviderOperation 
     .newInsert(ContactsContract.Data.CONTENT_URI) 
     .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0) 
     .withValue(ContactsContract.CommonDataKinds.StructuredName.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE) 
     .withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, "RICARDO") 
     .build()); 

try{ 
    getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops); 
}catch(Exception e){ 
    Log.e("ERROR", e.toString()); 
} 

回答

0

此通过参考它的id插入一个接触的基团:

Builder builder = ContentProviderOperation.newInsert(Data.CONTENT_URI); 
builder.withValueBackReference(Data.RAW_CONTACT_ID, 0); 
builder.withValue(Data.MIMETYPE, GroupMembership.CONTENT_ITEM_TYPE); 
builder.withValue(GroupMembership.GROUP_ROW_ID, groupId); 

ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); 
ops.add(builder.build()); 

try { 
    getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops); 
} catch (Exception e) { 
    Log.e("ContactsManager", "Failed to apply batch: "+e); 
} 
相关问题