Code to Start Call in Xamarin.Forms

When we code to start a voice call, we must be aware of DependencyService in Xamarin.Forms.

DependencyService in Xamarin.Forms provides access to the native functionality and some platform-specific implementations of the iOS, Android and Windows Phone SDKs from your PCL or Shared Project.

To start a voice call there are some platform-specific implementations and permissions.

1. The following is the procedure to implement the voice call in Xamarin.Forms. Let's create a ContentPage with an entry and a button as HomePage.cs.


2. Create an interface IPhoneCall.cs in the shared code that shows the functionality that we intend to implement.


3. The Interface must be implemented in each platform-specific application project.

Android implementation: Before implementing the interface in Android don't forget to set some permissions in AndroidManifest.xml. These permissions are necessary for invoking a voice call in Android.

Android implementation

After setting the permissions we must implement the interface using a small class PhoneCall_Droid.cs.

PhoneCall Droid

iOS implementation: implementing for iOS create a call named as PhoneCall_iOS.cs.

*iOS implementation

Windows Phone implementation: Windows Phone has a simple API to invoke the dialer, the only caveat is to remember to tick the ID_CAP_PHONEDIALER capability in the WMAppManifest.xml, otherwise access to the dialer APIs are blocked.


The implementation is only two lines of code as in the following:


4. We had completed implementing the interface and registering each specific platform. Now we can write DependencyService to get an instance of the interfaces.