gpt4 book ai didi

c# - 如何使用 Intent 和 Activity 在 Xamarin Android 中插入城市、街道、邮政编码、国家/地区的联系人?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:03:56 27 4
gpt4 key购买 nike

我需要使用 Xamarin Forms/Android 的 Intent 以编程方式打开 Android 联系人应用程序。当“添加新联系人” Activity/屏幕出现时,我想用以下字段预先填充它:

  • 姓名(正在填充)
  • 电话(正在填充)
  • 街道(未填充)
  • 城市(未填充)
  • 状态(未填充)
  • 国家(未看到此字段,未填充)

如上所述,一些屏幕正在填充,但地址字段没有。这是用于触发打开 Android 的“添加联系人”屏幕的 Activity 的 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);
}

该 Activity 确实会在联系人应用中打开“添加新联系人”屏幕,但只会填充姓名和电话号码字段。请参阅下面的屏幕截图:

Populated fields

Fields not populated

我找到了一个可以翻译成 Xamarin.Android 的链接,但我一直在努力实现 Java Samples .

最佳答案

我相信您只能将 ContactsContract.Intents.Insert 下可用的值作为参数传递。所以对于地址,你只有 Postal code ,如文档所述:

public static final String POSTAL: added in API 5

The extra field for the contact postal address.

Type: String

Constant Value: "postal"

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

intent.PutExtra(ContactsContract.Intents.Insert.Postal, postalCode);

您现在可能需要要求您的用户在“添加联系人”页面中手动输入其他值。

此外,您是否测试过使用列表同时添加多个手机?从文档中,似乎有 SECONDARY_PHONETERTIARY_PHONE您应该为此使用的常量。

关于c# - 如何使用 Intent 和 Activity 在 Xamarin Android 中插入城市、街道、邮政编码、国家/地区的联系人?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57124488/

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