我正在学习android.我试图以编程方式更新联系号码.请问有谁可以帮助我,我怎么能这样做.
我的努力是:
String lNumber = pCur.getString( pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
ContentValues values = new ContentValues();
Uri lPhoneUri = Uri.withAppendedPath(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, ContactsContract.CommonDataKinds.Phone.NUMBER);
values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, "45323333"));
getContentResover().update(lPhoneUri, values, ContactsContract.CommonDataKinds.Phone.NUMBER+"=?", new String[] { lNumber });
Run Code Online (Sandbox Code Playgroud)
Pau*_*ang 14
我觉得你差不多了.以下使用新API更新联系人的WORK电话号码,假设该联系人已有工作电话号码.
public void updateContact (String contactId, String newNumber, Activity act)
throws RemoteException, OperationApplicationException{
//ASSERT: @contactId alreay has a work phone number
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
String selectPhone = Data.CONTACT_ID + "=? AND " + Data.MIMETYPE + "='" +
Phone.CONTENT_ITEM_TYPE + "'" + " AND " + Phone.TYPE + "=?";
String[] phoneArgs = new String[]{contactId, String.valueOf(Phone.TYPE_WORK)};
ops.add(ContentProviderOperation.newUpdate(Data.CONTENT_URI)
.withSelection(selectPhone, phoneArgs)
.withValue(Phone.NUMBER, newNumber)
.build());
act.getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
}
Run Code Online (Sandbox Code Playgroud)
小智 7
试试这个
String where = ContactsContract.Data.DISPLAY_NAME + "=? AND " +
ContactsContract.Data.MIMETYPE + "=? AND " +
String.valueOf(ContactsContract.CommonDataKinds.Phone.TYPE) + "=?";
String[] params = new String[] {
Cname,
ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE,
String.valueOf(ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE)
};
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
.withSelection(where, params)
.withValue(ContactsContract.CommonDataKinds.Phone.NUMBER,"9999999999")
// .withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, "Sample Name 21")
.build()
);
//email
String where3 = ContactsContract.Data.DISPLAY_NAME + " = ? AND " +
ContactsContract.Data.MIMETYPE + " = ?";
String[] params3 = new String[] {
Cname,
"vnd.android.cursor.item/email_v2"
};
ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
.withSelection(where3, params3)
.withValue(ContactsContract.CommonDataKinds.Email.DATA,"a@b.com")
.build()
);
Run Code Online (Sandbox Code Playgroud)
通过使用此我可以更新联系人详细信息.
| 归档时间: |
|
| 查看次数: |
9041 次 |
| 最近记录: |