Checking Mobile Operator And Data Roaming in Windows Phone 8

This article provides the simplest way to check the cellular operator name and data roaming status in Windows Phone.

Introduction

In this article I'll explain the simplest to check the cellular operator name and data roaming status in Windows Phone. This is a very necessary and required feature for all apps that use an internet connection and operator specific services. For example if you you want to request something from the internet or send something to the server that may require a data connection then you need to alert the user about roaming  to avoid extra charges while in roaming. So let's start.

Device Network Information

This class contains network information for a specific Windows Phone device. Using of this class we can check various device network parameters, like it's availability, roaming, network change, WiFi status and so on. To use this class you need to include the namespace "Microsoft.Phone.Net.NetworkInformation".

CellularMobileOperator

This property contains the name of the operator. It returns a string of operator name.

IsCellularDataRoamingEnabled

This property contains the status of cellular data roaming availability. If roaming data is allowed then it will return true else it'll return false.

Demo

To run this project create new project and add the following code to an XAML file.

XAML

<phone:PhoneApplicationPage

    x:Class="Demo.MainPage"

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"

    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"

    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

    mc:Ignorable="d"

    FontFamily="{StaticResource PhoneFontFamilyNormal}"

    FontSize="{StaticResource PhoneFontSizeNormal}"

    Foreground="{StaticResource PhoneForegroundBrush}"

    SupportedOrientations="Portrait" Orientation="Portrait"

    shell:SystemTray.IsVisible="True">

 

    <!--LayoutRoot is the root grid where all page content is placed-->

    <Grid x:Name="LayoutRoot" Background="Transparent">

        <Grid.RowDefinitions>

            <RowDefinition Height="Auto"/>

            <RowDefinition Height="*"/>

        </Grid.RowDefinitions>

 

        <!--TitlePanel contains the name of the application and page title-->

        <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">

            <TextBlock Text="Demo" Style="{StaticResource PhoneTextNormalStyle}" Margin="12,0"/>

            <TextBlock Text="Demo" Margin="9,-7,0,0" FontSize="40"/>

        </StackPanel>

 

        <!--ContentPanel - place additional content here-->

        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">

            <TextBlock Text="Cellular Operator" Name="nwSts" TextAlignment="Center" Margin="0,128,0,476"></TextBlock>

            <TextBlock Text="Roming" Name="romSts" TextAlignment="Center" Margin="0,178,0,425"></TextBlock>

            <Button Name="startBtn" Click="startBtn_Click" Content="Check Name" HorizontalAlignment="Left" Margin="0,0,0,268" Width="446" Height="72" VerticalAlignment="Bottom"/>

        </Grid>

    </Grid>

</phone:PhoneApplicationPage>

C# Code Behind

using Microsoft.Phone.Controls;

using System;

using System.Collections.Generic;

using System.Linq;

using System.Net;

using System.Windows;

using System.Windows.Controls;

using Windows.Phone.Speech.Synthesis;

using Windows.Devices.Sensors;

using System.Diagnostics;

using Microsoft.Phone.Net.NetworkInformation;

 

namespace Demo

{

    public partial class MainPage : PhoneApplicationPage

    {

        // Constructor

        public MainPage()

        {

            InitializeComponent();

        }

        private void startBtn_Click(object sender, RoutedEventArgs e)

        {

            nwSts.Text = DeviceNetworkInformation.CellularMobileOperator;

            if (DeviceNetworkInformation.IsCellularDataRoamingEnabled)

            {

                romSts.Text = "Roaming Data enabled.";

            }

            else

            {

                romSts.Text = "Roaming Data not enabled.";

            }

        }

    }

}

DeviceNetworkInformation.IsCellularDataRoamingEnabled checks for cellular data roaming availability.

DeviceNetworkInformation.CellularMobileOperator gets the mobile operator name.

Output