首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何插入与城市,街道,邮政编码,国家在Xamarin Android使用意图和活动的联系人?

问如何插入与城市,街道,邮政编码,国家在Xamarin Android使用意图和活动的联系人?
EN

Stack Overflow用户
提问于 2019-07-20 12:00:07
回答 1查看 1.1K关注 0票数 7

我需要使用Xamarin Forms/Android的意图,以编程方式打开android联系人应用程序。当出现活动/屏幕时,我想用以下字段预填充它:

  • 名称(这是在填充)
  • 电话(这是人口)
  • 街道(非人口)
  • 城市(非人口)
  • 国家(非人口)
  • 国家(没有看到这方面的字段,也没有人口)

如前所述,一些屏幕正在填充,但地址字段不填充。这是Xamarin C# Android代码/服务,用于触发打开Android的“添加联系人”屏幕的活动:

代码语言:javascript
复制
 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样本而奋斗。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-23 11:56:35

我觉得您只能将ContactsContract.Intents.Insert下可用的值作为参数传递。因此,对于附件,您只有邮政编码,如文档所详细描述的:

公共静态最终字符串:在API 5中添加 联系人地址的额外字段。 类型:String 常量:“邮政”

因此,您将按以下方式传递邮政编码:

代码语言:javascript
复制
intent.PutExtra(ContactsContract.Intents.Insert.Postal, postalCode);

目前,您可能不得不要求用户在“添加联系人”页面中输入其他值。

另外,你有没有测试在同一时间添加多部手机,就像你正在做的那样,有一个列表?从文档中可以看出,您应该使用电话和电话常量。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57124488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档