Windows Phone 7 检查手机网络

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


posted on 2011-03-15 21:17  linzheng  阅读(2055)  评论(1编辑  收藏  举报

导航