繁体   English   中英

Windows 10移动UWP应用比wifi更喜欢蜂窝数据。 如何处理多个网络连接

[英]Windows 10 Mobile UWP app prefers cellular data over wifi. How to handle multiple network connections

我有Windows 10移动版应用程序。 前几天,我注意到我的某些服务器通信和网络访问呼叫/代码都失败了。 我使用的移动设备的“蜂窝数据”和“ Wifi”选项均在设置中打开。 我已经连接到我的Wifi上网了。 但是,蜂窝数据未在此设备上激活。 它显示蜂窝电话已打开,并显示一些条,但该服务未通过载体激活。

在故障排除过程中,我关闭了设置中的“蜂窝数据”选项,一旦这样做,我所有的服务器和网络访问代码便重新开始工作(即,不引发异常)。

我已经搜索了一段时间,但无法找到我的假设的答案,即当蜂窝数据和wifi都打开时,Windows 10移动将默认先使用蜂窝,即使蜂窝无法正常工作也是如此。 这是真的? 可能提出一个更好的方法是,当您启用两个数据连接源时,设备如何处理? 如何选择使用哪一个?

也许后续问题也是,我如何强迫它使用一个或另一个? 在研究过程中,我看到了很多代码,这些代码如何检测到哪个网络连接处于活动状态,但是如果有多个连接处于活动状态,以及如何强制操作系统使用其中一个或另一个,则没有太多信息。 如果我想将通话从wifi无缝切换到蜂窝,这可能会派上用场。 例如,更喜欢使用wifi并使用wifi,但是如果您超出了wifi的范围,请切换到蜂窝网络。

谢谢!

当我们连接Wifi时,无论蜂窝数据是否打开,UWP应用都将使用WIFI。

您可以使用以下代码检查您的UWP应用使用的蜂窝数据还是Wifi,还可以检查当前网络的信号电平。

ConnectionProfile profile = Windows.Networking.Connectivity.NetworkInformation.GetInternetConnectionProfile();
if (profile.GetNetworkConnectivityLevel() == NetworkConnectivityLevel.InternetAccess)
{
    Debug.WriteLine("InternetAccess");
}
var signal = profile.GetSignalBars();
Debug.WriteLine("signal is:"+signal);
if (profile.IsWlanConnectionProfile)
{
    Debug.WriteLine("Wifi");
}
else if (profile.IsWwanConnectionProfile)
{
    Debug.WriteLine("Cellular");
}

当蜂窝数据和Wifi选项都在设置中打开并连接时, ConnectionProfile.IsWwanConnectionProfile将返回true。

Wifi断开连接时,它将自动使用蜂窝数据。 我们不能通过代码强制UWP应用使用蜂窝数据或Wifi。 我们可以添加NetworkInformation.NetworkStatusChanged ,它会在连接的网络状态更改时发生。 当Wifi断开连接时,将触发该事件,并且ConnectionProfile.IsWwanConnectionProfile将返回true。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM