在空间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;
-
- }
-
- }
-
- }
-
- }
本文转自linzheng 51CTO博客,原文链接:http://blog.51cto.com/linzheng/1078644