簡體   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