我想通過我的應用程序使用新的ContactContract API將新聯繫人添加到我的聯繫人列表中。我有以下基於Android開發人員的聯繫人管理器示例的方法。添加問題聯繫新的API
private static void addContactCore(Context context, String accountType, String accountName, String name, String phoneNumber, int phoneType) throws RemoteException, OperationApplicationException {
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
//Add contact type
ops.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)
.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, accountType)
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, accountName)
.build());
//Add contact name
ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, (!name.toLowerCase().equals("unavailable") && !name.equals("")) ? name : phoneNumber)
.build());
//Add phone number
ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, phoneNumber)
.withValue(ContactsContract.CommonDataKinds.Phone.TYPE, phoneType)
.build());
//Add contact
context.getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
}
在一個例子中,我有參數的流動值。 ACCOUNTTYPE:com.google 帳戶名:(我的谷歌帳戶的電子郵件) 名:邁克 電話號碼:5555555555 PHONETYPE:3
給函數的調用正常返回而不被拋出的任何異常但是接觸不到哪裏在我手機上的聯繫人管理器中找到。我的手機上也沒有與該信息的聯繫。有沒有人有任何洞察到我可能做錯了什麼?
這對我有效。更具體地說,轉到聯繫人 - >顯示選項 - > [帳戶],然後選中「所有其他聯繫人」 – MobileDev852 2010-12-29 21:34:50