Xamarin.Essentials plugin provides 20+
cross-platform APIs for mobile application development.
Xamarin.Essentials API works with all Xamarin.Forms, Xamarin.Android,
Xamarin.iOS, or UWP applications that can be accessed from shared code.
Now, Xamarin.Essentials has overcome the problem. The developers can
access every native platform API using C#. This plugin provides many
APIs so initially, there is no need of more plugins for Xamarin.
Xamarin.Essentials plugin impacts your app's minimum size.
Platform Support
Setting up a Xamarin.Forms Project
Setting up the User Interface
Click the play button to try it out.
Platform Support
Xamarin.Essentials supports platforms and operating systems,
Platform | Version |
Android | 4.4 (API 19) or earlier |
iOS | 10.0 or higher |
UWP | 10.0.16299.0 or earlier |
Prerequisites
- Visual Studio 2017(Windows or Mac)
Start by creating a new Xamarin.Forms project. You’ll learn more by going through the steps yourself.
Choose the Xamarin.Forms App Project type, under Cross-platform/App in the New Project dialog.
Choose the Xamarin.Forms App Project type, under Cross-platform/App in the New Project dialog.
Name your app, select “Use Portable Class Library” for shared code, and target both - Android and iOS.
You
probably want your project and solution to use the same name as your
app. Put it in your preferred folder for projects and click "Create".
Go to MainPage.Xaml and write the following code.
MainPage.xaml
- <?xml version="1.0" encoding="utf-8" ?>
- <ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
- xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
- xmlns:local="clr-namespace:XamarinEssentials"
- x:Class="XamarinEssentials.MainPage">
- <StackLayout>
- <StackLayout HorizontalOptions="Center" VerticalOptions="Start">
- <Image Margin="0,50,0,0" x:Name="imgBanner" Source="banner.png" ></Image>
- <Image Margin="0,0,0,10" x:Name="imgXamarinEssential" Source="xamarinessential.png" ></Image>
- <Label Margin="0,0,0,10" FontAttributes="Bold" FontSize="Large" TextColor="#CA6F1E" HorizontalTextAlignment="Center" Text="Text To Speech"></Label>
- <Entry x:Name="txtInpout" Placeholder="Type what i should say"></Entry>
- <Button x:Name="btnSpeak" Text="Speak" Clicked="btnSpeak_Clicked" />
- </StackLayout>
- </StackLayout>
- </ContentPage>
Add Xamarin Essentials
In this step, add Xamarin.Essentials to your project. You can install Xamarin.Essentials via NuGet, or you can browse the source code on GitHub.
Go to Solution Explorer and select your solution. Right-click and select "Manage NuGet Packages for Solution". Search "Xamarin.Essentials" and add Package. Remember to install it for each project (PCL, Android, iO, and UWP).
Xamarin.Essentials requires platform-specific setup
Android
The following steps are necessary for Android.
Go to Solution Explorer and select your solution. Right-click and select "Manage NuGet Packages for Solution". Search "Xamarin.Essentials" and add Package. Remember to install it for each project (PCL, Android, iO, and UWP).
Xamarin.Essentials requires platform-specific setup
Android
The following steps are necessary for Android.
- Xamarin.Essentials supports a minimum Android version of 4.4
- Target Android version for compiling must be 8.1, API level 27.
In the Android project's MainActivity that is launched Xamarin.Essentials must be initialized in the OnCreate method.
MainActivity.cs
MainActivity.cs
- Xamarin.Essentials.Platform.Init(this, bundle);
Xamarin.Essentials must receive any OnRequestPermissionsResult. write the following code for runtime permission.
MainActivity.cs
MainActivity.cs
- public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
- {
- Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
- base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
- }
iOS
No additional setup required.
UWP
No additional setup required.
In this step, write the following code for Text to Speech.
MainPage.xaml.cs
No additional setup required.
UWP
No additional setup required.
In this step, write the following code for Text to Speech.
MainPage.xaml.cs
- using Xamarin.Essentials;
- namespace XamarinEssentials
- {
- public partial class MainPage : ContentPage
- {
- public MainPage()
- {
- InitializeComponent();
- }
- protected override void OnAppearing()
- {
- base.OnAppearing();
- }
- async void btnSpeak_Clicked(object sender, System.EventArgs e)
- {
- await TextToSpeech.SpeakAsync(txtInpout.Text);
- }
- }
- }
SpeakMultiple
Now, write the following code for Multiple Speak
MainPage.xaml.cs
Now, write the following code for Multiple Speak
MainPage.xaml.cs
- bool isBusy = false;
- public void SpeakMultiple()
- {
- isBusy = true;
- Task.Run(async () =>
- {
- await TextToSpeech.SpeakAsync("Hello World 1");
- await TextToSpeech.SpeakAsync("Hello World 2");
- await TextToSpeech.SpeakAsync("Hello World 3");
- isBusy = false;
- });
- Task.WhenAll(
- TextToSpeech.SpeakAsync("Hello World 1"),
- TextToSpeech.SpeakAsync("Hello World 2"),
- TextToSpeech.SpeakAsync("Hello World 3"))
- .ContinueWith((t) => { isBusy = false; }, TaskScheduler.FromCurrentSynchronizationContext());
- }
Click the play button to try it out.
Speech Settings
Now, write the following code for Speak Settings
MainPage.xaml.cs
Speech Settings
Now, write the following code for Speak Settings
MainPage.xaml.cs
- public async Task SpeakNow()
- {
- var settings = new SpeakSettings()
- {
- Volume = .50,
- Pitch = 2.0
- };
- await TextToSpeech.SpeakAsync("Hello Xamarin", settings);
- }
Hi,
ReplyDeleteWonderful information. Thanks.
I have a question , how to send data in XML/JSON format from Android mobile to another webapi.
Can you reply it?
Thanks in advance.
Hire Xamarin Developer
I am delighted to come to such a wonderful blog. I am really very impressed to read from top to bottom. I read every single line and understand the essence of every single word. I appreciate all efforts.
ReplyDeletevoice recognition software
wow amazing
ReplyDeletetext to speech software
great blog
ReplyDeletespeechelo
Thanks for sharing such informative stuff.I was watching for Speechelo Review and came to your blog. Information in your blog was very helpful to me. Thanks a lot and keep sharing.
ReplyDelete