在空间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