在Android上,打开带有预填联系表的添加新联系人的正确方法是什么?
作者:互联网
我想打开“保存新联系人”对话框,并在该对话框中预先填写街道地址,电话号码,电子邮件等.然后用户可以进行修改,添加或保存.
我看过几种方法.
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)此方法似乎是一个不错的解决方案,但是我无法将此数据附加到打开联系人应用程序的意图中.它仅用于以编程方式自动插入新联系人.
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的文档,以及有关使用Intents here修改联系人的一些常规信息.
标签:android-intent,android-contacts,android 来源: https://codeday.me/bug/20191122/2059724.html