Now for the IoC implementation. It works exactly the same as iOS; let's add the Android module:
public class DroidModule : IModule
{
public void Register(ContainerBuilder builer)
{
builer.RegisterType<TextToSpeechDroid> ().As<ITextToSpeech> ().SingleInstance ();
}
}
Easy, right?
Now we have to set up the IoC container in our MainActivity.cs class; simply copy the iOS function in the AppDelegate file called initIoC and paste this into the MainActivity class, replace the instantiation of the iOSModule with your DroidModule, then simply add the function call after the initialization of Xamarin.Forms:
You may have issues trying to get the speech to work on Android. One thing you may need to set up first is within Settings | Controls | Text-to-Speech options. Here is where you will have to install voice data if the default has not already been installed. If you run the app and no speech occurs, you will have to configure the voice data.
That's all for Android, now try running the app and hear some speech.