在空間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; } } }}