gpt4 book ai didi

android - 在 Android 上,使用预填充的联系表打开添加新联系人的正确方法是什么?

转载 作者:太空狗 更新时间:2023-10-29 12:44:42 26 4
gpt4 key购买 nike

我想打开“保存新联系人”对话框,其中的工作表预填了街道地址、电话号码、电子邮件等。然后用户可以修改、添加或保存。

我见过一些方法。

1) 此方法已被弃用,但在大多数情况下都有效(无法使用地址等复合类型)。

Intent i = new Intent(Intent.ACTION_INSERT_OR_EDIT);
i.setType(ContactsContract.Contacts.CONTENT_ITEM_TYPE);
i.putExtra(Insert.NAME,"Name");
i.putExtra(Insert.PHONE,"Number");
startActivity(i);

2) 这种方法似乎是一个很好的解决方案,但我无法将此数据附加到打开联系人应用程序的 Intent 。它仅用于以编程方式自动插入新联系人。

ArrayList<ContentProviderOperation> op=new ArrayList<ContentProviderOperation>();
/* ops.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)
.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, mSelectedAccount.getType())
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, mSelectedAccount.getName())
.build()); */
op.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)
.build());
op.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,phone).build());

getContentResolver().applyBatch(ContactsContract.AUTHORITY, op);

解决此问题的最佳做法是什么?

谢谢。

最佳答案

问题是您使用了错误的常量。您正在使用的 Insert.NAME 来自类

Contacts.Intents.Insert

在 API 级别 5 中已弃用。它被替换为类

ContactsContract.Intents.Insert

如果您使用此类中的常量,您应该没问题!我已经相应地更新了您的代码:

Intent i = new Intent(Intent.ACTION_INSERT_OR_EDIT);
i.setType(ContactsContract.Contacts.CONTENT_ITEM_TYPE);
i.putExtra(ContactsContract.Intents.Insert.NAME,"Name");
i.putExtra(ContactsContract.Intents.Insert.PHONE,"Number");
startActivity(i);

您可以找到 ContactsContract.Intents.Insert 类的文档 here以及一些关于使用 Intent 修改联系人的一般信息 here

关于android - 在 Android 上,使用预填充的联系表打开添加新联系人的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20276536/

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