Windows 10 UWP – C#:如何检查networkingtypes(EDGE / 3G / LTE),不仅是蜂窝与WLAN?

如何检查目前使用哪种types的蜂窝连接(EDGE / 3G / LTE)? 我只知道如何检查设备是否在蜂窝连接或无线局域网,但我需要特定types的蜂窝连接。 谢谢!

Solutions Collecting From Web of "Windows 10 UWP – C#:如何检查networkingtypes(EDGE / 3G / LTE),不仅是蜂窝与WLAN?"

NetworkInformation应可用于Windows 10( https://msdn.microsoft.com/en-us/library/windows.networking.connectivity.networkinformation.getinternetconnectionprofile.aspx?cs-save-lang=1&cs-lang=csharp#code- snippet-2 )。

您必须根据您的需求调整此代码:

/// <summary> /// ("Connection Type", `0`-`3`): `0` - cellular, `1` - wifi / ethernet, `2` - inne; /// </summary> /// <returns></returns> public byte GetConnectionGeneration() { try { ConnectionProfile profile = NetworkInformation.GetInternetConnectionProfile(); if (profile.IsWwanConnectionProfile) { WwanDataClass connectionClass = profile.WwanConnectionProfileDetails.GetCurrentDataClass(); switch (connectionClass) { //2G-equivalent case WwanDataClass.Edge: case WwanDataClass.Gprs: //3G-equivalent case WwanDataClass.Cdma1xEvdo: case WwanDataClass.Cdma1xEvdoRevA: case WwanDataClass.Cdma1xEvdoRevB: case WwanDataClass.Cdma1xEvdv: case WwanDataClass.Cdma1xRtt: case WwanDataClass.Cdma3xRtt: case WwanDataClass.CdmaUmb: case WwanDataClass.Umts: case WwanDataClass.Hsdpa: case WwanDataClass.Hsupa: //4G-equivalent case WwanDataClass.LteAdvanced: return 0; //not connected case WwanDataClass.None: return 2; //unknown case WwanDataClass.Custom: default: return 2; } } else if (profile.IsWlanConnectionProfile) { return 1; } return 2; } catch (Exception) { return 2; //as default } }