如何在Windows 8中以编程方式检查/切换飞行模式?

3

我需要检查Windows 8中是否启用了飞行模式,可能需要切换其状态。我目前正在开发一个C# .NET 4.0 Windows窗体应用程序,但是这个问题的答案不应该限制在此。


难道这不是他们通过Winkey+I工具栏提供快速访问的原因吗? - Deanna
@Deanna 我需要以编程方式访问它。 - Jader Dias
2个回答

4
很遗憾,在Windows 8中,Metro应用程序没有编程方式可以更改飞行模式。未经用户许可,应用程序不得违反Metro准则并修改系统设置,例如这种操作(请参见http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/1ad10725-b1b8-4723-b2c3-861900809e02的讨论)。
现在,您可以使用Windows.Networking.NetworkOperators命名空间中的某些功能来确定状态。具体而言,请查看MobileBroadbandRadioStateNetworkDeviceStatus枚举。
或者,您可以提示用户通过说明如何使用Windows键+I,更改PC设置,无线电,飞行模式来进行更改。

即使我在开发传统桌面应用程序时,是否也受到Metro指南的限制? - Jader Dias
1
不,Metro指导方针仅适用于Metro应用程序,而非传统桌面应用程序。 - Jennifer Marsman - MSFT
所以你的意思是,虽然 Metro 应用程序不能通过编程方式切换飞行模式,但桌面应用程序可能可以。 - Jader Dias
1
假设你正在飞机上,有一个程序可以自动关闭飞行模式。你真的想要这样的程序吗?我不认为微软会提供可以更改飞行模式的API。 - Yongwei Wu

2

以下是获取 NetworkConnectivityLevel 的代码片段,它可能会为您提供所需的信息。我不知道是否有改变它的方法。我怀疑这是不可能的,因为您还需要提供一种选择要连接到的网络的方式。

    public static NetworkConnectivityLevel GetNetworkConnectivityLevel()
    {
        ConnectionProfile profile = NetworkInformation.GetInternetConnectionProfile();

        var ncl = NetworkConnectivityLevel.None;

        if (profile != null)
        {
            ncl = profile.GetNetworkConnectivityLevel();
        }

        return ncl;
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接