gpt4 book ai didi

android - 以编程方式编辑联系人的姓名/电话号码

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:54:51 25 4
gpt4 key购买 nike

我正在尝试以编程方式修改联系人的显示名称:

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

ops.add(ContentProviderOperation.newUpdate(Data.CONTENT_URI)
.withSelection(ContactsContract.CommonDataKinds.Phone._ID + " = ?", new String[] {contact_id})
.withValue(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, "anything")
.build());

ContentProviderResult[] result = 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 = getApplicationContext();
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(ctx, "Update failed", duration);
toast.show();
}

contact_idContactsContract.CommonDataKinds.Phone._ID 在之前的 Activity 中收集

代码执行正常,但是:

  • ContentProviderResult[] 结果为空
  • 联系人姓名不变

我也对 Data.DISPLAY_NAME 进行了试验,但效果相同。

我阅读了手册:http://developer.android.com/guide/topics/providers/contacts-provider.html但我不想调用 native Intent 。

谢谢。

最佳答案

您应该在选择中指定 mimetype。

.withSelection(ContactsContract.CommonDataKinds.Phone._ID + "=? AND " +
Data.MIMETYPE + "='" +
ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE + "'",
new String[]{contact_id})

如果您还没有弄清楚这一点,请试一试。我发现更新联系人在获得正确的选择参数方面非常棘手。

关于android - 以编程方式编辑联系人的姓名/电话号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16887240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com