Hue*_*Hue 7 c# android xamarin.android xamarin xamarin.forms
我需要使用Xamarin Forms / Android的意图以编程方式打开android Contacts应用程序。当出现“添加新联系人”活动/屏幕时,我想用以下字段预填充它:
如上所述,某些屏幕正在填充,但地址字段却没有。这是Xamarin C#Android代码/服务,用于触发打开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);
}
Run Code Online (Sandbox Code Playgroud)
该活动的确在联系人应用程序中打开了“添加新联系人”屏幕,但仅填充了姓名和电话号码字段。查看以下屏幕截图:
我找到了一个可能会转换为Xamarin.Android的链接,但是我一直在努力实现Java示例
任何帮助,将不胜感激!
我担心您只能将 下可用的值作为参数传递ContactsContract.Intents.Insert。因此,对于地址,您只有邮政编码,如文档中详述:
public static Final String POSTAL:在 API 5 中添加
联系邮政地址的额外字段。
类型:字符串
恒定值:“邮政”
因此,您可以按如下方式传递邮政编码:
intent.PutExtra(ContactsContract.Intents.Insert.Postal, postalCode);
Run Code Online (Sandbox Code Playgroud)
您现在可能需要要求用户在“添加联系人”页面中手动输入其他值。
另外,您是否测试过使用列表同时添加多部手机?从文档来看,您似乎应该使用SECONDARY_PHONE和TERTIARY_PHONE常量。
| 归档时间: |
|
| 查看次数: |
197 次 |
| 最近记录: |