Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(239)

Unified Diff: talk/app/webrtc/java/android/org/webrtc/NetworkMonitorAutoDetect.java

Issue 1594673002: Get the adapter type information from Android OS. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;

Powered by Google App Engine
This is Rietveld 408576698