Windows 10 移动 UWP 应用比 wifi 更喜欢蜂窝数据。如何处理多个网络连接
Windows 10 Mobile UWP app prefers cellular data over wifi. How to handle multiple network connections
我有 Windows 10 个移动应用程序。前几天我注意到我的一些服务器通信和网络访问 calls/code 都失败了。我使用的移动设备在设置中打开了蜂窝数据和 Wifi 选项。我连接到我的 Wifi 就好了。但是,此设备上未激活蜂窝数据。它显示蜂窝已打开并显示一些条,但运营商未激活该服务。
在故障排除过程中,我关闭了设置中的蜂窝数据选项,一旦关闭,我所有的服务器和网络访问代码就会重新开始工作(即不抛出异常)。
我已经搜索了一段时间,但未能找到我假设的答案 Windows 10 Mobile,当同时打开蜂窝数据和 wifi 时,将默认首先使用蜂窝网络,即使如果蜂窝不工作。这是真的?也许更好的提问方式是,当您启用了两个数据连接源时,设备如何处理?它如何选择使用哪一个?
也许接下来的问题也是,我如何强制它使用一个或另一个?在我的研究过程中,我看到了很多关于如何检测哪个网络连接处于活动状态的代码,但没有太多关于如果多个网络连接处于活动状态会发生什么以及如何强制 OS 使用一个或另一个的信息。如果我想将通话从 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
将 return 为真。
当 Wifi 断开连接时,它将自动使用蜂窝数据。我们不能通过代码强制 UWP 应用程序使用蜂窝数据或 Wifi。我们可以添加NetworkInformation.NetworkStatusChanged
,它发生在连接的网络状态发生变化时。当 Wifi 断开连接时,事件将被触发并且 ConnectionProfile.IsWwanConnectionProfile
将 return 为真。
我有 Windows 10 个移动应用程序。前几天我注意到我的一些服务器通信和网络访问 calls/code 都失败了。我使用的移动设备在设置中打开了蜂窝数据和 Wifi 选项。我连接到我的 Wifi 就好了。但是,此设备上未激活蜂窝数据。它显示蜂窝已打开并显示一些条,但运营商未激活该服务。
在故障排除过程中,我关闭了设置中的蜂窝数据选项,一旦关闭,我所有的服务器和网络访问代码就会重新开始工作(即不抛出异常)。
我已经搜索了一段时间,但未能找到我假设的答案 Windows 10 Mobile,当同时打开蜂窝数据和 wifi 时,将默认首先使用蜂窝网络,即使如果蜂窝不工作。这是真的?也许更好的提问方式是,当您启用了两个数据连接源时,设备如何处理?它如何选择使用哪一个?
也许接下来的问题也是,我如何强制它使用一个或另一个?在我的研究过程中,我看到了很多关于如何检测哪个网络连接处于活动状态的代码,但没有太多关于如果多个网络连接处于活动状态会发生什么以及如何强制 OS 使用一个或另一个的信息。如果我想将通话从 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
将 return 为真。
当 Wifi 断开连接时,它将自动使用蜂窝数据。我们不能通过代码强制 UWP 应用程序使用蜂窝数据或 Wifi。我们可以添加NetworkInformation.NetworkStatusChanged
,它发生在连接的网络状态发生变化时。当 Wifi 断开连接时,事件将被触发并且 ConnectionProfile.IsWwanConnectionProfile
将 return 为真。