开发WP应用的时候,如果你的应用需要互联网连接,那么检测当前网络是否可用并给出提示是非常必要的。Windows Phone 8 检查网络是否可用的 API如下:

System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable()

这个API会检查手机网络或WIFI是否可用,返回bool类型结果。

转到网络设置用的是ConnectionSettingsTask对象,ConnectionSettingsType属性决定了打开的设置页面是哪种连接类型,如果要打开WLAN设置,代码如下:

var connectionSettingsTask = new ConnectionSettingsTask
{
    ConnectionSettingsType = ConnectionSettingsType.WiFi
};
connectionSettingsTask.Show();

所有可用的连接类型为:

public enum ConnectionSettingsType
{
  WiFi,         // WLAN无线网络
  Bluetooth,    // 蓝牙
  Cellular,     // 手机网络(GPRS,3G...)
  AirplaneMode, // 飞行模式
}

对于给出用户提示,Windows Phone有些限制。系统自带的MessageBox是木有YesOrNo的选项的,所以要让用户选择是否执行操作,只能用OkCancel。完整的检查网络连接并给用户选择是否进入设置页面的代码如下:

private void CheckNetwork()
{
    if (!System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable())
    {
        var result = MessageBox.Show(
            NetworkInterface.NetworkInterfaceType + AppResources.NetworkBlowUp, 
            AppResources.NoConnection, 
            MessageBoxButton.OKCancel);

        if (result == MessageBoxResult.OK)
        {
            var connectionSettingsTask = new ConnectionSettingsTask
            {
                ConnectionSettingsType = ConnectionSettingsType.WiFi
            };
            connectionSettingsTask.Show();
        }
    }
}

效果:

用户点击OK: