Index: talk/app/webrtc/java/android/org/webrtc/NetworkMonitorAutoDetect.java |
diff --git a/talk/app/webrtc/java/android/org/webrtc/NetworkMonitorAutoDetect.java b/talk/app/webrtc/java/android/org/webrtc/NetworkMonitorAutoDetect.java |
index baadd279a57af8846a0ab15336e125574c60ed97..c77ad73eeae984163f450b1847843c2a4447ec99 100644 |
--- a/talk/app/webrtc/java/android/org/webrtc/NetworkMonitorAutoDetect.java |
+++ b/talk/app/webrtc/java/android/org/webrtc/NetworkMonitorAutoDetect.java |
@@ -186,6 +186,19 @@ public class NetworkMonitorAutoDetect extends BroadcastReceiver { |
return connectivityManager.getAllNetworks(); |
} |
+ NetworkInformation[] getAllNetworkInfos() { |
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP || |
+ connectivityManager == null) { |
+ return new NetworkInformation[0]; |
+ } |
+ Network[] networks = getAllNetworks(); |
+ NetworkInformation[] netInfos = new NetworkInformation[networks.length]; |
+ for (int i = 0; i < networks.length; ++i) { |
+ netInfos[i] = networkToInfo(networks[i]); |
+ } |
+ return netInfos; |
+ } |
+ |
/** |
* Returns the NetID of the current default network. Returns |
* INVALID_NET_ID if no current default network connected. |
@@ -226,6 +239,17 @@ public class NetworkMonitorAutoDetect extends BroadcastReceiver { |
return defaultNetId; |
} |
+ @SuppressLint("NewApi") |
+ private NetworkInformation networkToInfo(Network network) { |
+ LinkProperties linkProperties = connectivityManager.getLinkProperties(network); |
+ NetworkInformation networkInformation = new NetworkInformation( |
+ linkProperties.getInterfaceName(), |
+ getConnectionType(getNetworkState(network)), |
+ networkToNetId(network), |
+ getIPAddresses(linkProperties)); |
+ return networkInformation; |
+ } |
+ |
/** |
* Returns true if {@code network} can provide Internet access. Can be used to |
* ignore specialized networks (e.g. IMS, FOTA). |
@@ -250,12 +274,7 @@ public class NetworkMonitorAutoDetect extends BroadcastReceiver { |
@Override |
public void onAvailable(Network network) { |
super.onAvailable(network); |
- LinkProperties linkProperties = connectivityManager.getLinkProperties(network); |
- NetworkInformation networkInformation = new NetworkInformation( |
- linkProperties.getInterfaceName(), |
- getConnectionType(getNetworkState(network)), |
- networkToNetId(network), |
- getIPAddresses(linkProperties)); |
+ NetworkInformation networkInformation = networkToInfo(network); |
Logging.d(TAG, "Network " + networkInformation.name + " is connected "); |
observer.onNetworkConnect(networkInformation); |
} |
@@ -428,6 +447,10 @@ public class NetworkMonitorAutoDetect extends BroadcastReceiver { |
return connectivityManagerDelegate.getDefaultNetId(); |
} |
+ public NetworkInformation[] getAllNetworkInfos() { |
+ return connectivityManagerDelegate.getAllNetworkInfos(); |
+ } |
+ |
public static ConnectionType getConnectionType(NetworkState networkState) { |
if (!networkState.isConnected()) { |
return ConnectionType.CONNECTION_NONE; |