locked
How to add new contact in phone book contact list using xamarin forms RRS feed

  • Question

  • User374708 posted

    Hello,

    Please help me for add contact name and number in contact list of mobile in xamarin forms .net standard project.

    Thanks in advance

    Saturday, October 13, 2018 10:14 AM

Answers

  • User371688 posted

    You can check: https://forums.xamarin.com/discussion/89597/write-to-contacts-on-xamarin-forms

    • Marked as answer by Anonymous Thursday, June 3, 2021 12:00 AM
    Monday, October 15, 2018 6:08 AM
  • User374708 posted

    Interface: public interface IContact { void SaveContacts(string Name, string Number, string Email); }

    *.xaml.cs : *

    DependencyService.Get().SaveContacts(txtContactName.Text, txtPhoneNumber.Text, txtEmail.Text);

    android project:

    public class ContactSave : IContact { public void SaveContacts(string Name, string Number, string Email) {

            var activity = Forms.Context as Activity;
            var intent = new Intent(Intent.ActionInsert).SetFlags(ActivityFlags.ClearTask);
            intent.SetType(ContactsContract.Contacts.ContentType);
            intent.PutExtra(ContactsContract.Intents.Insert.Name, Name);
            intent.PutExtra(ContactsContract.Intents.Insert.Phone, Number);
            intent.PutExtra(ContactsContract.Intents.Insert.Email, Email);
            activity.StartActivity(intent);
    
        }
    
    }
    

    IOS Project:

    public class ContactSave : IContact { public void SaveContacts(string Name, string Number, string Email) { ABAddressBook ab = new ABAddressBook(); ABPerson p = new ABPerson();

            p.FirstName = Name;
           // p.LastName = lname;
    
            ABMutableMultiValue<string> phones = new ABMutableStringMultiValue();
            phones.Add(Number, ABPersonPhoneLabel.Mobile);
    
            p.SetPhones(phones);
    
            ABMutableDictionaryMultiValue addresses = new ABMutableDictionaryMultiValue();
            NSMutableDictionary a = new NSMutableDictionary();
    
           // a.Add(new NSString(ABPersonAddressKey.City), new NSString(city));
            //a.Add(new NSString(ABPersonAddressKey.State), new NSString(state));
            //a.Add(new NSString(ABPersonAddressKey.Zip), new NSString(zip));
            // a.Add(new NSString(ABPersonAddressKey.Street), new NSString(addr1));
    
            addresses.Add(a, new NSString("Home"));
            p.SetAddresses(addresses);
    
            ab.Add(p);
            ab.Save();
    
        }
    }
    

    I hope this will work for you @yanie_143

    • Marked as answer by Anonymous Thursday, June 3, 2021 12:00 AM
    Monday, July 22, 2019 9:04 AM

All replies

  • User371688 posted

    You can check: https://forums.xamarin.com/discussion/89597/write-to-contacts-on-xamarin-forms

    • Marked as answer by Anonymous Thursday, June 3, 2021 12:00 AM
    Monday, October 15, 2018 6:08 AM
  • User374708 posted

    Hello @jezh

    I have referred that link but i want to know from starting that how to implement write contacts in address book.

    Thank You

    Monday, October 15, 2018 7:10 AM
  • User387603 posted

    Hi @Gandhi_123 :)

    Have you added contacts successfully? How did you do it?

    Thanks for the reply.

    Monday, July 22, 2019 5:34 AM
  • User374708 posted

    Interface: public interface IContact { void SaveContacts(string Name, string Number, string Email); }

    *.xaml.cs : *

    DependencyService.Get().SaveContacts(txtContactName.Text, txtPhoneNumber.Text, txtEmail.Text);

    android project:

    public class ContactSave : IContact { public void SaveContacts(string Name, string Number, string Email) {

            var activity = Forms.Context as Activity;
            var intent = new Intent(Intent.ActionInsert).SetFlags(ActivityFlags.ClearTask);
            intent.SetType(ContactsContract.Contacts.ContentType);
            intent.PutExtra(ContactsContract.Intents.Insert.Name, Name);
            intent.PutExtra(ContactsContract.Intents.Insert.Phone, Number);
            intent.PutExtra(ContactsContract.Intents.Insert.Email, Email);
            activity.StartActivity(intent);
    
        }
    
    }
    

    IOS Project:

    public class ContactSave : IContact { public void SaveContacts(string Name, string Number, string Email) { ABAddressBook ab = new ABAddressBook(); ABPerson p = new ABPerson();

            p.FirstName = Name;
           // p.LastName = lname;
    
            ABMutableMultiValue<string> phones = new ABMutableStringMultiValue();
            phones.Add(Number, ABPersonPhoneLabel.Mobile);
    
            p.SetPhones(phones);
    
            ABMutableDictionaryMultiValue addresses = new ABMutableDictionaryMultiValue();
            NSMutableDictionary a = new NSMutableDictionary();
    
           // a.Add(new NSString(ABPersonAddressKey.City), new NSString(city));
            //a.Add(new NSString(ABPersonAddressKey.State), new NSString(state));
            //a.Add(new NSString(ABPersonAddressKey.Zip), new NSString(zip));
            // a.Add(new NSString(ABPersonAddressKey.Street), new NSString(addr1));
    
            addresses.Add(a, new NSString("Home"));
            p.SetAddresses(addresses);
    
            ab.Add(p);
            ab.Save();
    
        }
    }
    

    I hope this will work for you @yanie_143

    • Marked as answer by Anonymous Thursday, June 3, 2021 12:00 AM
    Monday, July 22, 2019 9:04 AM
  • User387603 posted

    Thank you @Gandhi_123

    For Forms.Context, I used Android.App.Application.Context.

    Haven't tried yet the IOS part.

    Thursday, July 25, 2019 2:29 AM
  • User387875 posted

    I don´t win identify class on visual studio xamarin. Se image please. Help me.

    @Gandhi_123 said: Interface: public interface IContact { void SaveContacts(string Name, string Number, string Email); }

    *.xaml.cs : *

    DependencyService.Get().SaveContacts(txtContactName.Text, txtPhoneNumber.Text, txtEmail.Text);

    android project:

    public class ContactSave : IContact { public void SaveContacts(string Name, string Number, string Email) {

            var activity = Forms.Context as Activity;
            var intent = new Intent(Intent.ActionInsert).SetFlags(ActivityFlags.ClearTask);
            intent.SetType(ContactsContract.Contacts.ContentType);
            intent.PutExtra(ContactsContract.Intents.Insert.Name, Name);
            intent.PutExtra(ContactsContract.Intents.Insert.Phone, Number);
            intent.PutExtra(ContactsContract.Intents.Insert.Email, Email);
            activity.StartActivity(intent);
    
        }
    
    }
    

    IOS Project:

    public class ContactSave : IContact { public void SaveContacts(string Name, string Number, string Email) { ABAddressBook ab = new ABAddressBook(); ABPerson p = new ABPerson();

            p.FirstName = Name;
           // p.LastName = lname;
    
            ABMutableMultiValue<string> phones = new ABMutableStringMultiValue();
            phones.Add(Number, ABPersonPhoneLabel.Mobile);
    
            p.SetPhones(phones);
    
            ABMutableDictionaryMultiValue addresses = new ABMutableDictionaryMultiValue();
            NSMutableDictionary a = new NSMutableDictionary();
    
           // a.Add(new NSString(ABPersonAddressKey.City), new NSString(city));
            //a.Add(new NSString(ABPersonAddressKey.State), new NSString(state));
            //a.Add(new NSString(ABPersonAddressKey.Zip), new NSString(zip));
            // a.Add(new NSString(ABPersonAddressKey.Street), new NSString(addr1));
    
            addresses.Add(a, new NSString("Home"));
            p.SetAddresses(addresses);
    
            ab.Add(p);
            ab.Save();
    
        }
    }
    

    I hope this will work for you @yanie_143

    Monday, November 25, 2019 1:46 PM
  • User387875 posted

    I don´t win identify class on visual studio xamarin. Se image please. Help me.

    @andersonx said: I don´t win identify class on visual studio xamarin. Se image please. Help me.

    @Gandhi_123 said: Interface: public interface IContact { void SaveContacts(string Name, string Number, string Email); }

    *.xaml.cs : *

    DependencyService.Get().SaveContacts(txtContactName.Text, txtPhoneNumber.Text, txtEmail.Text);

    android project:

    public class ContactSave : IContact { public void SaveContacts(string Name, string Number, string Email) {

            var activity = Forms.Context as Activity;
            var intent = new Intent(Intent.ActionInsert).SetFlags(ActivityFlags.ClearTask);
            intent.SetType(ContactsContract.Contacts.ContentType);
            intent.PutExtra(ContactsContract.Intents.Insert.Name, Name);
            intent.PutExtra(ContactsContract.Intents.Insert.Phone, Number);
            intent.PutExtra(ContactsContract.Intents.Insert.Email, Email);
            activity.StartActivity(intent);
    
        }
    
    }
    

    IOS Project:

    public class ContactSave : IContact { public void SaveContacts(string Name, string Number, string Email) { ABAddressBook ab = new ABAddressBook(); ABPerson p = new ABPerson();

            p.FirstName = Name;
           // p.LastName = lname;
    
            ABMutableMultiValue<string> phones = new ABMutableStringMultiValue();
            phones.Add(Number, ABPersonPhoneLabel.Mobile);
    
            p.SetPhones(phones);
    
            ABMutableDictionaryMultiValue addresses = new ABMutableDictionaryMultiValue();
            NSMutableDictionary a = new NSMutableDictionary();
    
           // a.Add(new NSString(ABPersonAddressKey.City), new NSString(city));
            //a.Add(new NSString(ABPersonAddressKey.State), new NSString(state));
            //a.Add(new NSString(ABPersonAddressKey.Zip), new NSString(zip));
            // a.Add(new NSString(ABPersonAddressKey.Street), new NSString(addr1));
    
            addresses.Add(a, new NSString("Home"));
            p.SetAddresses(addresses);
    
            ab.Add(p);
            ab.Save();
    
        }
    }
    

    I hope this will work for you @yanie_143

    Monday, November 25, 2019 1:46 PM
  • User396156 posted

    @Gandhi_123 said: Interface: public interface IContact { void SaveContacts(string Name, string Number, string Email); }

    *.xaml.cs : *

    DependencyService.Get().SaveContacts(txtContactName.Text, txtPhoneNumber.Text, txtEmail.Text);

    android project:

    public class ContactSave : IContact { public void SaveContacts(string Name, string Number, string Email) {

            var activity = Forms.Context as Activity;
            var intent = new Intent(Intent.ActionInsert).SetFlags(ActivityFlags.ClearTask);
            intent.SetType(ContactsContract.Contacts.ContentType);
            intent.PutExtra(ContactsContract.Intents.Insert.Name, Name);
            intent.PutExtra(ContactsContract.Intents.Insert.Phone, Number);
            intent.PutExtra(ContactsContract.Intents.Insert.Email, Email);
            activity.StartActivity(intent);
    
        }
    
    }
    

    IOS Project:

    public class ContactSave : IContact { public void SaveContacts(string Name, string Number, string Email) { ABAddressBook ab = new ABAddressBook(); ABPerson p = new ABPerson();

            p.FirstName = Name;
           // p.LastName = lname;
    
            ABMutableMultiValue<string> phones = new ABMutableStringMultiValue();
            phones.Add(Number, ABPersonPhoneLabel.Mobile);
    
            p.SetPhones(phones);
    
            ABMutableDictionaryMultiValue addresses = new ABMutableDictionaryMultiValue();
            NSMutableDictionary a = new NSMutableDictionary();
    
           // a.Add(new NSString(ABPersonAddressKey.City), new NSString(city));
            //a.Add(new NSString(ABPersonAddressKey.State), new NSString(state));
            //a.Add(new NSString(ABPersonAddressKey.Zip), new NSString(zip));
            // a.Add(new NSString(ABPersonAddressKey.Street), new NSString(addr1));
    
            addresses.Add(a, new NSString("Home"));
            p.SetAddresses(addresses);
    
            ab.Add(p);
            ab.Save();
    
        }
    }
    

    I hope this will work for you @yanie_143
    thanks for thats its work good

    Monday, August 10, 2020 6:06 AM