Swiftorial Logo
Home
Swift Lessons
Matchups
CodeSnaps
Tutorials
Career
Resources

Xamarin.Essentials Comprehensive Tutorial

Introduction

Xamarin.Essentials provides developers with cross-platform APIs for their mobile applications. It includes APIs for accessing hardware features such as sensors, device information, connectivity, and more. This tutorial will guide you through the process of integrating and using Xamarin.Essentials in your mobile application.

Installation

To start using Xamarin.Essentials, you need to install it in your project. You can do this through NuGet Package Manager or by using the Package Manager Console.

Using Package Manager Console, run the following command:

Install-Package Xamarin.Essentials

Initialization

After installing Xamarin.Essentials, you need to initialize it in your project. This is typically done in the main activity for Android and in the AppDelegate for iOS.

Android

Add the following line in the MainActivity.cs file:

Xamarin.Essentials.Platform.Init(this, savedInstanceState);

iOS

Add the following line in the AppDelegate.cs file:

Xamarin.Essentials.Platform.Init();

Permissions

Some Xamarin.Essentials APIs require permissions. You need to declare these permissions in your project files.

Android

Update the AndroidManifest.xml file with the required permissions:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
                

iOS

Update the Info.plist file with the required permissions:

<key>NSLocationWhenInUseUsageDescription</key>
<string>Need your location</string>
                

Using Xamarin.Essentials

Let's explore some of the commonly used Xamarin.Essentials APIs with examples.

1. Device Information

Get information about the device.

using Xamarin.Essentials;

var deviceModel = DeviceInfo.Model;
var manufacturer = DeviceInfo.Manufacturer;
var version = DeviceInfo.VersionString;

Console.WriteLine($"Device Model: {deviceModel}");
Console.WriteLine($"Manufacturer: {manufacturer}");
Console.WriteLine($"Version: {version}");
                

2. Battery Information

Get battery information of the device.

using Xamarin.Essentials;

var level = Battery.ChargeLevel;
var state = Battery.State;
var source = Battery.PowerSource;

Console.WriteLine($"Battery Level: {level}");
Console.WriteLine($"Battery State: {state}");
Console.WriteLine($"Power Source: {source}");
                

3. Connectivity

Check the network connectivity status.

using Xamarin.Essentials;

var current = Connectivity.NetworkAccess;

if (current == NetworkAccess.Internet)
{
    Console.WriteLine("Connected to Internet");
}
else
{
    Console.WriteLine("No Internet Access");
}
                

4. Geolocation

Get the current location of the device.

using Xamarin.Essentials;

var location = await Geolocation.GetLastKnownLocationAsync();

if (location != null)
{
    Console.WriteLine($"Latitude: {location.Latitude}, Longitude: {location.Longitude}");
}
                

5. Flashlight

Turn the device's flashlight on or off.

using Xamarin.Essentials;

// Turn on the flashlight
await Flashlight.TurnOnAsync();

// Turn off the flashlight
await Flashlight.TurnOffAsync();
                

Conclusion

In this tutorial, we covered the basics of integrating and using Xamarin.Essentials in your mobile applications. We explored various APIs provided by Xamarin.Essentials to access device features. With this knowledge, you can now leverage Xamarin.Essentials to build feature-rich cross-platform mobile applications.