在空间Microsoft.Phone.Net.NetworkInformation下的NetworkInterface类 和NetworkInterfaceType类是Windows Phone 7手机网络信息相关的类。NetworkInterface提供了当前手机网络的一些信息,NetworkInterfaceType是一个手机网络的类型的枚举。
下面用一个小例子来使用NetworkInterface和NetworkInterfaceType来检查手机的网络状态。
<Grid x:Name=
"LayoutRoot"
Background=
"Transparent"
>
<Grid.RowDefinitions>
<RowDefinition Height=
"Auto"
/>
<RowDefinition Height=
"*"
/>
</Grid.RowDefinitions>
<StackPanel x:Name=
"TitlePanel"
Grid.Row=
"0"
Margin=
"12,17,0,28"
>
<TextBlock x:Name=
"PageTitle"
Text=
"检查手机网络"
Margin=
"9,-7,0,0"
Style=
"{StaticResource PhoneTextTitle1Style}"
/>
</StackPanel>
<Grid x:Name=
"ContentPanel"
Grid.Row=
"1"
Margin=
"12,0,12,0"
>
<TextBox Name=
"Message"
Background=
"Yellow"
Text=
"Unknown"
VerticalAlignment=
"Center"
HorizontalAlignment=
"Center"
Margin=
"131,184,94,378"
Width=
"231"
/>
<Button Content=
"查看网络信息"
Height=
"72"
HorizontalAlignment=
"Left"
Margin=
"103,6,0,0"
Name=
"button1"
VerticalAlignment=
"Top"
Width=
"244"
Click=
"button1_Click"
/>
<TextBox Height=
"72"
HorizontalAlignment=
"Left"
Margin=
"131,271,0,0"
Name=
"netname"
Text=
"TextBox"
VerticalAlignment=
"Top"
Width=
"244"
/>
<TextBlock Height=
"49"
HorizontalAlignment=
"Left"
Margin=
"9,198,0,0"
Name=
"textBlock1"
Text=
"网络状态:"
VerticalAlignment=
"Top"
Width=
"121"
/>
<TextBlock HorizontalAlignment=
"Left"
Margin=
"9,287,0,310"
Name=
"textBlock2"
Text=
"网络类型:"
/>
</Grid>
</Grid>
|
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
System.Net.NetworkInformation;
using
Microsoft.Phone.Net.NetworkInformation;
namespace
checknet
{
public
partial
class
MainPage : PhoneApplicationPage
{
private
bool
networkIsAvailable;
private
NetworkInterfaceType _currentNetworkType;
//网络连接的类型
public
MainPage()
{
InitializeComponent();
}
private
void
button1_Click(
object
sender, RoutedEventArgs e)
{
networkIsAvailable = Microsoft.Phone.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable();
//当前网络是否可用
_currentNetworkType = Microsoft.Phone.Net.NetworkInformation.NetworkInterface.NetworkInterfaceType;
//获取当前网络的类型
if
(networkIsAvailable)
{
Message.Text =
"联网状态"
;
Message.Background =
new
SolidColorBrush(Colors.Green);
}
else
{
Message.Text =
"断网状态"
;
Message.Background =
new
SolidColorBrush(Colors.Red);
}
switch
(_currentNetworkType)
{
case
NetworkInterfaceType.MobileBroadbandCdma:
netname.Text =
"Cdma网络"
;
break
;
case
NetworkInterfaceType.MobileBroadbandGsm:
netname.Text =
"Csm网络"
;
break
;
case
NetworkInterfaceType.Wireless80211:
netname.Text =
"Wireless网络"
;
break
;
case
NetworkInterfaceType.Ethernet:
netname.Text =
"Ethernet网络"
;
break
;
case
NetworkInterfaceType.None:
netname.Text =
"网络不可用"
;
break
;
default
:
netname.Text =
"其他的网络"
;
break
;
}
}
}
}
|