Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法使用Xamarin.Android中的Xamarin.Mobile组件保存联系人_C#_Android_Xamarin_Xamarin.mobile - Fatal编程技术网

C# 无法使用Xamarin.Android中的Xamarin.Mobile组件保存联系人

C# 无法使用Xamarin.Android中的Xamarin.Mobile组件保存联系人,c#,android,xamarin,xamarin.mobile,C#,Android,Xamarin,Xamarin.mobile,我在Xamarin.Android项目中使用这个。经过大量的谷歌搜索和查看他们的样本后,我找到了从手机到我的应用程序检索联系人的唯一方法 下面是我的代码: AddressBook book = new AddressBook(context) { PreferContactAggregation = true }; Phone ph = new Phone(){

我在Xamarin.Android项目中使用这个。经过大量的谷歌搜索和查看他们的样本后,我找到了从手机到我的应用程序检索联系人的唯一方法

下面是我的代码:

        AddressBook book = new AddressBook(context)
            {
                    PreferContactAggregation = true
            };



        Phone ph = new Phone(){
        Type = PhoneType.Mobile,
        Number = "9952429044"
        };

       Contact ct = new Contact()
        {
            DisplayName = "Sai Ram",
            FirstName = "Om",
            MiddleName = "Sai",
            LastName = "Ram",
            Phones = new List<Phone>(){ph}
        };

我需要将联系人对象保存到电话的通讯录中。我在Xamarin.Contacts中找不到像book.Savecontact这样的方法。

Xamarin.Mobile的API仅用于读取联系人,不用于添加联系人

编辑

下面是一个简短的示例,介绍了如何使用手机号码将新联系人添加到您的联系人中

列表操作=新列表; int rawContactInsertIndex=ops.Count; ops.AddContentProviderOperation.NewInsertAndroid.Provider.ContactsContract.RawContacts.ContentUri .WithValueAndroid.Provider.ContactsContract.RawContacts.InterfaceConsts.AccountType,空 .WithValueAndroid.Provider.ContactsContract.RawContacts.InterfaceConsts.AccountName,null.Build; ops.AddContentProviderOperation .NewInsertAndroid.Provider.ContactsContract.Data.ContentUri .WithValueBackReferenceAndroid.Provider.ContactsContract.Data.InterfaceConsts.RawContactId,rawContactInsertIndex .WithValueAndroid.Provider.ContactsContract.Data.InterfaceConsts.Mimetype,Android.Provider.ContactsContract.CommonDataTypes.StructuredName.ContentItemType .WithValueAndroid.Provider.ContactsContract.CommonDataTypes.StructuredName.DisplayName,Vikas Patidar//人员姓名 建筑 ops.AddContentProviderOperation .NewInsertAndroid.Provider.ContactsContract.Data.ContentUri .WithValueBackReference ContactsContact.Data.InterfaceConsts.RawContactId,rawContactInsertIndex .WithValueAndroid.Provider.ContactsContract.Data.InterfaceConsts.Mimetype,Android.Provider.ContactsContract.CommonDataTypes.Phone.ContentItemType .WithValueAndroid.Provider.ContactsContract.CommonDataTypes.Phone.Number,9999999999//联系人号码 .WithValueAndroid.Provider.ContactsContract.CommonDataTypes.Phone.InterfaceConsts.Type,mobile.Build;//手机号码类型 //要求联系人提供商创建新联系人 试一试{ ContentResolver.applybatchcontacts.contract.Authority,ops; }捕获异常{ Toast.maketexthis,异常:+ex.Message,ToastLength.Long.Show; } 您可以找到有关如何保存其他字段的更多详细信息。
别忘了向应用程序添加“写入联系人”权限。

Xamarin.Mobile的API仅用于读取联系人,不用于添加联系人

编辑

下面是一个简短的示例,介绍了如何使用手机号码将新联系人添加到您的联系人中

列表操作=新列表; int rawContactInsertIndex=ops.Count; ops.AddContentProviderOperation.NewInsertAndroid.Provider.ContactsContract.RawContacts.ContentUri .WithValueAndroid.Provider.ContactsContract.RawContacts.InterfaceConsts.AccountType,空 .WithValueAndroid.Provider.ContactsContract.RawContacts.InterfaceConsts.AccountName,null.Build; ops.AddContentProviderOperation .NewInsertAndroid.Provider.ContactsContract.Data.ContentUri .WithValueBackReferenceAndroid.Provider.ContactsContract.Data.InterfaceConsts.RawContactId,rawContactInsertIndex .WithValueAndroid.Provider.ContactsContract.Data.InterfaceConsts.Mimetype,Android.Provider.ContactsContract.CommonDataTypes.StructuredName.ContentItemType .WithValueAndroid.Provider.ContactsContract.CommonDataTypes.StructuredName.DisplayName,Vikas Patidar//人员姓名 建筑 ops.AddContentProviderOperation .NewInsertAndroid.Provider.ContactsContract.Data.ContentUri .WithValueBackReference ContactsContact.Data.InterfaceConsts.RawContactId,rawContactInsertIndex .WithValueAndroid.Provider.ContactsContract.Data.InterfaceConsts.Mimetype,Android.Provider.ContactsContract.CommonDataTypes.Phone.ContentItemType .WithValueAndroid.Provider.ContactsContract.CommonDataTypes.Phone.Number,9999999999//联系人号码 .WithValueAndroid.Provider.ContactsContract.CommonDataTypes.Phone.InterfaceConsts.Type,mobile.Build;//手机号码类型 //要求联系人提供商创建新联系人 试一试{ ContentResolver.applybatchcontacts.contract.Authority,ops; }捕获异常{ Toast.maketexthis,异常:+ex.Message,ToastLength.Long.Show; } 您可以找到有关如何保存其他字段的更多详细信息。
别忘了向应用程序中添加“写入联系人”权限。

那么,如何从我的应用程序中添加联系人?我已尝试使用本机方式添加联系人。但是,它无法保存显示名称,只保存了联系人号码。更新了我的答案,添加了示例。我遇到编译问题,在尝试Android.App.Application.Context.ContentResolver.ApplyBatchContactsContract.Authority,ops后不得不更改行@stepheaw应该是[Context].ContentResolver.ApplyBatchContactsContract.Authority,ops;其中,[Context]是您的活动上下文,也就是说,这是活动上下文或应用程序上下文。所以如果你从你的activ运行这个代码
“它将按原样工作。”阿图尔·萨姆苏季诺夫说得更清楚了,谢谢。你有更新联系人的示例吗?那么,如何从我的应用程序中添加联系人?我已尝试使用本机方式添加联系人。但是,它无法保存显示名称,只保存了联系人号码。更新了我的答案,添加了示例。我遇到编译问题,在尝试Android.App.Application.Context.ContentResolver.ApplyBatchContactsContract.Authority,ops后不得不更改行@stepheaw应该是[Context].ContentResolver.ApplyBatchContactsContract.Authority,ops;其中,[Context]是您的活动上下文,也就是说,这是活动上下文或应用程序上下文。因此,如果您在活动中运行此代码,它将按原样工作。@Artur Shamsutdinov现在更有意义了,谢谢。您有更新联系人的样本吗?