我需要使用 Xamarin Forms/Android 的意图以编程方式打开 Android 联系人应用程序。当“添加新联系人”活动/屏幕出现时,我想用以下字段预先填充它:名称(正在填充)电话(正在填充)街道(无人居住)城市(无人居住)状态(未填充)国家(没有看到这个字段,没有填充)如上所述,某些屏幕正在填充,但地址字段并未填充。这是用于触发打开 Android 的“添加联系人”屏幕的活动的 Xamarin C# Android 代码/服务:public void AddContact(string name, string[] phoneNumbers, string streetAddress, string city, string state, string postalCode, CountryValues countrycode) { // get current activity var activity = CrossCurrentActivity.Current.Activity; // create add contact intent var intent = new Intent(Intent.ActionInsert); intent.SetType(ContactsContract.Contacts.ContentType); // add field for contact name intent.PutExtra(ContactsContract.Intents.Insert.Name, name); // Adding more than on phone number if available foreach (string numbers in phoneNumbers) { intent.PutExtra(ContactsContract.Intents.Insert.Phone, numbers); } // pre-populate address fields intent.PutExtra(ContactsContract.CommonDataKinds.StructuredPostal.Street, streetAddress); intent.PutExtra(ContactsContract.CommonDataKinds.StructuredPostal.City, city); intent.PutExtra(ContactsContract.CommonDataKinds.StructuredPostal.Region, state); intent.PutExtra(ContactsContract.CommonDataKinds.StructuredPostal.Postcode, postalCode); intent.PutExtra(ContactsContract.CommonDataKinds.StructuredPostal.Country, countrycode.ToString()); //start activity activity.StartActivity(intent); }该活动确实会在联系人应用程序中打开“添加新联系人”屏幕,但仅填充姓名和电话号码字段。请参阅下面的屏幕截图:我找到了一个可以转换为 Xamarin.Android 的链接,但我一直在努力实现Java Samples。
1 回答

幕布斯7119047
TA贡献1794条经验 获得超8个赞
我担心您只能将 下可用的值作为参数传递ContactsContract.Intents.Insert
。因此,对于地址,您只有邮政编码,如文档中详述:
public static Final String POSTAL:在 API 5 中添加
联系邮政地址的额外字段。
类型:字符串
恒定值:“邮政”
因此,您可以按如下方式传递邮政编码:
intent.PutExtra(ContactsContract.Intents.Insert.Postal, postalCode);
您现在可能需要要求用户在“添加联系人”页面中手动输入其他值。
另外,您是否测试过使用列表同时添加多部手机?从文档来看,您似乎应该使用SECONDARY_PHONE和TERTIARY_PHONE常量。
- 1 回答
- 0 关注
- 124 浏览
添加回答
举报
0/150
提交
取消