Question Arises: What
is Connection Settings?
The Enables the user to
pick up the network connection settings as per their requirements and performs
necessary operations to handle networks.
So Let's get it Started
off!!!
The Complete Code of
IService1.cs looks like this:
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Runtime.Serialization;
using
System.ServiceModel;
using
System.ServiceModel.Web;
using
System.Text;
namespace
WCF_Connection_Task
{
// NOTE: You can use the "Rename" command on the "Refactor"
menu to change the interface name "IService1" in both code and config file
together.
[ServiceContract]
public interface
IService1
{
[OperationContract]
string Airplane();
[OperationContract]
string Bluetooth();
[OperationContract]
string WiFi();
[OperationContract]
string Cellular();
}
}
The Complete Code of
Service1.svc.cs looks like this:
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Runtime.Serialization;
using
System.ServiceModel;
using
System.ServiceModel.Web;
using
System.Text;
namespace
WCF_Connection_Task
{
// NOTE: You can use the "Rename" command on the "Refactor"
menu to change the class name "Service1" in code, svc and config file together.
public class
Service1 : IService1
{
public
string Airplane()
{
return
"Hurray...!!! WCF Service for Airplane Mode";
}
public
string Bluetooth()
{
return
"Hurray...!!! WCF Service for Bluetooth Mode";
}
public
string WiFi()
{
return
"Hurray...!!! WCF Service for WiFi Mode";
}
public
string Cellular()
{
return
"Hurray...!!! WCF Service for Cellular Mode";
}
}
}
The Complete Code of
Web.Config looks like this:
<?xml
version="1.0"?>
<configuration>
<system.web>
<compilation
debug="true"
targetFramework="4.0"
/>
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<!-- To avoid
disclosing metadata information, set the value below to false and remove the
metadata endpoint above before deployment
-->
<serviceMetadata
httpGetEnabled="true"/>
<!--
To receive exception details in faults for debugging purposes, set the value
below to true. Set to false before deployment to avoid disclosing exception
information -->
<serviceDebug
includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment
multipleSiteBindingsEnabled="true"
/>
</system.serviceModel>
<system.webServer>
<modules
runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>
The Complete Code of
MainPage.xaml looks like this:
<phone:PhoneApplicationPage
x:Class="Connection_Setting_Task.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"
d:DesignWidth="480"
d:DesignHeight="768"
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
x:Name="ApplicationTitle"
Text="Vijay's Connection
Setting Application" FontFamily="Verdana"
FontSize="22"
Style="{StaticResource
PhoneTextNormalStyle}"/>
<TextBlock
x:Name="PageTitle"
Text="Windows 7 Phone"
Margin="9,-7,0,0" Style="{StaticResource
PhoneTextTitle1Style}"/>
</StackPanel>
<!--ContentPanel
- place additional content here-->
<Grid
x:Name="ContentPanel"
Grid.Row="1"
Margin="12,0,12,0">
<Button
Content="Airplane Mode"
FontFamily="Verdana"
FontSize="22"
Height="72"
HorizontalAlignment="Left"
Margin="128,42,0,0"
Name="button1"
VerticalAlignment="Top"
Width="229"
Click="button1_Click"
/>
<Button
Content="Bluetooth Mode"
FontFamily="Verdana"
FontSize="22"
Height="68"
HorizontalAlignment="Left"
Margin="128,120,0,0"
Name="button2"
VerticalAlignment="Top"
Width="229"
Click="button2_Click"
/>
<Button
Content="Cellular Mode"
FontFamily="Verdana"
FontSize="22"
Height="72"
HorizontalAlignment="Left"
Margin="128,194,0,0"
Name="button3"
VerticalAlignment="Top"
Width="229"
Click="button3_Click"
/>
<Button
Content="WiFi Mode"
FontFamily="Verdana"
FontSize="22"
Height="72"
HorizontalAlignment="Left"
Margin="128,272,0,0"
Name="button4"
VerticalAlignment="Top"
Width="229"
Click="button4_Click"
/>
</Grid>
</Grid>
<!--Sample
code showing usage of ApplicationBar-->
<!--<phone:PhoneApplicationPage.ApplicationBar>
<shell:ApplicationBar
IsVisible="True" IsMenuEnabled="True">
<shell:ApplicationBarIconButton IconUri="/Images/appbar_button1.png"
Text="Button 1"/>
<shell:ApplicationBarIconButton IconUri="/Images/appbar_button2.png"
Text="Button 2"/>
<shell:ApplicationBar.MenuItems>
<shell:ApplicationBarMenuItem Text="MenuItem 1"/>
<shell:ApplicationBarMenuItem Text="MenuItem 2"/>
</shell:ApplicationBar.MenuItems>
</shell:ApplicationBar>
</phone:PhoneApplicationPage.ApplicationBar>-->
</phone:PhoneApplicationPage>
The Complete Code of
MainPage.xaml.cs looks like this:
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Net;
using
System.Windows;
using
System.Windows.Controls;
using
System.Windows.Documents;
using
System.Windows.Input;
using
System.Windows.Media;
using
System.Windows.Media.Animation;
using
System.Windows.Shapes;
using
Microsoft.Phone.Controls;
using
Microsoft.Phone.Tasks;
using
Connection_Setting_Task.ServiceReference1;
namespace
Connection_Setting_Task
{
public partial
class MainPage
: PhoneApplicationPage
{
// Constructor
public MainPage()
{
InitializeComponent();
}
static void
AirplaneCall(object sender,
AirplaneCompletedEventArgs e)
{
MessageBox.Show(e.Result);
ConnectionSettingsTask objConnectionTask =
new ConnectionSettingsTask();
objConnectionTask.ConnectionSettingsType =
ConnectionSettingsType.AirplaneMode;
objConnectionTask.Show();
}
static void
BluetoothCall(object sender,
BluetoothCompletedEventArgs e)
{
MessageBox.Show(e.Result);
ConnectionSettingsTask objConnectionTask =
new ConnectionSettingsTask();
objConnectionTask.ConnectionSettingsType =
ConnectionSettingsType.Bluetooth;
objConnectionTask.Show();
}
static void
CellularCall(object sender,
CellularCompletedEventArgs e)
{
MessageBox.Show(e.Result);
ConnectionSettingsTask objConnectionTask =
new ConnectionSettingsTask();
objConnectionTask.ConnectionSettingsType =
ConnectionSettingsType.Cellular;
objConnectionTask.Show();
}
static void
WIFiCall(object sender, WiFiCompletedEventArgs
e)
{
MessageBox.Show(e.Result);
ConnectionSettingsTask objConnectionTask =
new ConnectionSettingsTask();
objConnectionTask.ConnectionSettingsType =
ConnectionSettingsType.WiFi;
objConnectionTask.Show();
}
private void
button1_Click(object sender, RoutedEventArgs e)
{
Service1Client objClient = new
Service1Client();
objClient.AirplaneCompleted += new
EventHandler<AirplaneCompletedEventArgs>(AirplaneCall);
objClient.AirplaneAsync();
}
private
void button2_Click(object
sender, RoutedEventArgs e)
{
Service1Client objClient = new
Service1Client();
objClient.BluetoothCompleted += new
EventHandler<BluetoothCompletedEventArgs>(BluetoothCall);
objClient.BluetoothAsync();
}
private
void button3_Click(object
sender, RoutedEventArgs e)
{
Service1Client objClient = new
Service1Client();
objClient.CellularCompleted += new
EventHandler<CellularCompletedEventArgs>(CellularCall);
objClient.CellularAsync();
}
private
void button4_Click(object
sender, RoutedEventArgs e)
{
Service1Client objClient = new
Service1Client();
objClient.WiFiCompleted += new
EventHandler<WiFiCompletedEventArgs>(WIFiCall);
objClient.WiFiAsync();
}
}
}
The Output of the
Application looks like this:
The Airplane Mode Output
Application looks like this:
I hope this
article is useful for you.