Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Xamarin.Forms — DeviceInfo Using Xamarin Essentials

DZone's Guide to

Xamarin.Forms — DeviceInfo Using Xamarin Essentials

Learn how to get device information using Xamarin.Essentials in Xamarin.Forms when building a cross-platform mobile app.

· Mobile Zone ·
Free Resource

Introduction

Image title

Xamarin.Forms code runs on multiple platforms, each of which has its own filesystem. This means that reading and writing files are the most easily done tasks using native file APIs on each platform. Alternatively, embedded resources are also a simpler solution to distribute the data files with an app.

Xamarin.Essentials

Image title

Xamarin.Essentials plugin provides 20+ cross-platform APIs for mobile application development. The Xamarin.Essentials API works with all Xamarin.Forms, Xamarin.Android, Xamarin.iOS, or UWP applications that can be accessed from shared code. Xamarin.Essentials overcomes the problem of developing Xamarin with Android, iOS, and UWP apps so developers can access every native platform API using C#. This plugin provides many APIs so initially, there is no need for more plugins for Xamarin. The Xamarin.Essentials plugin impacts your app's minimum size.

Platform Support

Xamarin.Essentials supports these 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)

Setting Up a Xamarin.Forms Project

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 the Cross-platform/App in the New Project dialog.

Image title

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.

You now have a basic Xamarin.Forms app. Click the play button to try it out.

Setting up the User Interface

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 HorizontalOptions="Center" x:Name="lblDeviceName"></Label>   
         <Label HorizontalOptions="Center" x:Name="lblDeviceType"></Label>   
         <Label HorizontalOptions="Center" x:Name="lblPlatform"></Label>   
         <Label HorizontalOptions="Center" x:Name="lblModel"></Label>   
         <Label HorizontalOptions="Center" x:Name="lblManufacturer"></Label>   
         <Label HorizontalOptions="Center" x:Name="lblVersion"></Label>   
         </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).

Image title

Xamarin.Essentials Requires Platform-Specific Setup

Android

The following steps are required for Android:

  1. Xamarin.Essentials supports a minimum Android version of 4.4

  2. The 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.

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

Xamarin.Essentials must receive any OnRequestPermissionsResult. Write the following code for runtime permission.

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 to get Device Information.

MainPage.xaml.cs

using Xamarin.Forms;
using Xamarin.Essentials;
namespace XamarinEssentials
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();

            lblDeviceName.Text ="Device Name :"+ DeviceInfo.Name;
            lblDeviceType.Text ="DeviceType :"+ DeviceInfo.DeviceType.ToString();
            lblModel.Text ="Model :"+ DeviceInfo.Model;
            lblManufacturer.Text ="Manufacturer :" + DeviceInfo.Manufacturer;
            lblPlatform.Text ="Platform : " + DeviceInfo.Platform;
            lblVersion.Text = "Version :" + DeviceInfo.Version;
}
}
}

Click the play button to try it out.


Image title


I hope you understand how to get DeviceInfo using Xamarin Essentials in Xamarin.Forms.

Thanks for reading. Please share comments and feedback.

Topics:
xamarin ,xamarin.forms ,tutorial ,mobile ,cross platform development ,mobile app development

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}