可以说我只有一个电话号码和姓名。
现在,我想更新联系人和添加电子邮件信息。
我所做的 -
public void updateMail(String name, String mail) {
ContentResolver cr = mcontext.getContentResolver();
String where = ContactsContract.Data.DISPLAY_NAME + " = ? AND " +
ContactsContract.Data.MIMETYPE + " = ? AND " +
String.valueOf(ContactsContract.CommonDataKinds.Phone.TYPE) + " = ? ";
String[] params = new String[] {name,
ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE,
String.valueOf(ContactsContract.CommonDataKinds.Email.TYPE_HOME)};
Cursor phoneCur =
mcontext.getContentResolver().query(ContactsContract.Data.CONTENT_URI,
null, where, params, null);
ArrayList<ContentProviderOperation> ops = new
ArrayList<ContentProviderOperation>();
if ( (null == phoneCur) ) {
//createContact(name, phone);
Log.e(TAG, "null == phoneCur");
} else {
ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
.withSelection(where, params)
.withValue(ContactsContract.CommonDataKinds.Email.DATA, mail)
.build());
}
phoneCur.close();
try {
cr.applyBatch(ContactsContract.AUTHORITY, ops);
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (OperationApplicationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
仅当我已经与电子邮件字段联系时,它才起作用。如果我没有它-什么也不会发生。我怎么解决这个问题?
if ((null == phoneCur))
在此代码中,您已检查是否存在联系信息。如果是,null (No contact)
则您错过了ops.add()
代码。
您可以删除此条件,if ((null == phoneCur))
也可以在'if'块中添加'ops.add()'。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句