2011-07-26 185 views
0
ArrayList<ContentProviderOperation> operationList = new ArrayList<ContentProviderOperation>(); 

    ContentProviderOperation.Builder builder = ContentProviderOperation.newInsert(RawContacts.CONTENT_URI); 
    builder.withValue(RawContacts.ACCOUNT_NAME, account.name); 
    builder.withValue(RawContacts.ACCOUNT_TYPE, account.type); 
    builder.withValue(RawContacts.SYNC1, username); 
    operationList.add(builder.build()); 

    builder = ContentProviderOperation.newInsert(Data.CONTENT_URI); 
    builder.withValueBackReference(CommonDataKinds.StructuredName.RAW_CONTACT_ID, 0); 
    builder.withValue(Data.MIMETYPE, CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE); 
    builder.withValue(CommonDataKinds.StructuredName.DISPLAY_NAME, name); 
    operationList.add(builder.build()); 

    builder = ContentProviderOperation.newInsert(Data.CONTENT_URI); 
    builder.withValueBackReference(Data.RAW_CONTACT_ID, 0); 
    builder.withValue(Data.MIMETYPE, "vnd.android.cursor.item/vnd.org.c99.SyncProviderDemo.profile"); 
    builder.withValue(Data.DATA1, username); 
    builder.withValue(Data.DATA2, "SyncProviderDemo Profile"); 
    builder.withValue(Data.DATA3, "View profile"); 
    operationList.add(builder.build()); 

接着是添加的聯繫人不在聯繫人顯示在Android的

mContentResolver.applyBatch(ContactsContract.AUTHORITY, operationList); 

創建新的聯繫人,但在聯繫人不顯示,但如果我在谷歌聯繫人過濾和搜索我能夠看到聯繫人。爲什麼,在此先感謝

回答

0

改變這一行:

builder.withValueBackReference(CommonDataKinds.StructuredName.RAW_CONTACT_ID, 0); 

要:

builder.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0); 

而這個塊添加到在manifest.xml一個活動:

<intent-filter> 
    <action android:name="android.intent.action.VIEW" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:mimeType="vnd.android.cursor.item/vnd.org.c99.SyncProviderDemo.profile" /> 
</intent-filter> 

這解決了我的問題,但在Android 5中不起作用。