更新android中的现有联系人详细信息

时间:2014-07-17 08:24:25

标签: android android-contentprovider contactscontract

我想更新现有的联系方式。首先,我想显示电话默认联系人界面,其中包含与一个联系人ID相关的现有联系信息。然后我想更新联系方式,如电话号码,姓名,电子邮件等。

public static void updateContactInPhone(Activity activity,Contact contact) {

    try {
        ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();

        ops.add(ContentProviderOperation.newUpdate(Data.CONTENT_URI)
        .withSelection(Data.RAW_CONTACT_ID + "=? AND " + Data.MIMETYPE + "='" + ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE + "'", new String[]{contact.getContactId()})
        .withValue(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, "new name")
        .build());

        ContentProviderResult[] result = activity.getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
    } catch (Exception e) {
        Log.w("UpdateContact", e.getMessage()+"");
        for(StackTraceElement ste : e.getStackTrace()) {
            Log.w("UpdateContact", "\t" + ste.toString());
        }
        Context ctx = activity;
        int duration = Toast.LENGTH_SHORT;
        Toast toast = Toast.makeText(ctx, "Update failed", duration);
        toast.show();
    }
}

我试图根据这个更新名称,但我没有得到任何结果。请帮忙。

0 个答案:

没有答案