diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java index 70c8750623fbc..2aff5f2d69a87 100644 --- a/core/java/android/net/ConnectivityManager.java +++ b/core/java/android/net/ConnectivityManager.java @@ -928,6 +928,23 @@ public class ConnectivityManager { } } + /** + * Get the set of tethered dhcp ranges. + * + * @return an array of 0 or more Strings of tethered dhcp ranges. + * + *
This method requires the call to hold the permission
+ * {@link android.Manifest.permission#ACCESS_NETWORK_STATE}.
+ * {@hide}
+ */
+ public String[] getTetheredDhcpRanges() {
+ try {
+ return mService.getTetheredDhcpRanges();
+ } catch (RemoteException e) {
+ return new String[0];
+ }
+ }
+
/**
* Get the set of tethered interfaces.
*
diff --git a/core/java/android/net/IConnectivityManager.aidl b/core/java/android/net/IConnectivityManager.aidl
index 4bca7fefbc44b..3bfd88ec6c062 100644
--- a/core/java/android/net/IConnectivityManager.aidl
+++ b/core/java/android/net/IConnectivityManager.aidl
@@ -91,6 +91,8 @@ interface IConnectivityManager
String[] getTetherableIfaces();
+ String[] getTetheredDhcpRanges();
+
String[] getTetheredIfaces();
String[] getTetheringErroredIfaces();
diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java
index b7a1a55e14fcc..2d1921e794792 100644
--- a/services/java/com/android/server/ConnectivityService.java
+++ b/services/java/com/android/server/ConnectivityService.java
@@ -3297,6 +3297,11 @@ public class ConnectivityService extends IConnectivityManager.Stub {
return mTethering.getTetherableIfaces();
}
+ public String[] getTetheredDhcpRanges() {
+ enforceConnectivityInternalPermission();
+ return mTethering.getTetheredDhcpRanges();
+ }
+
public String[] getTetheredIfaces() {
enforceTetherAccessPermission();
return mTethering.getTetheredIfaces();
diff --git a/services/java/com/android/server/connectivity/Tethering.java b/services/java/com/android/server/connectivity/Tethering.java
index adf1dfc10ef55..91b9b072de309 100644
--- a/services/java/com/android/server/connectivity/Tethering.java
+++ b/services/java/com/android/server/connectivity/Tethering.java
@@ -109,6 +109,7 @@ public class Tethering extends BaseNetworkObserver {
// USB is 192.168.42.1 and 255.255.255.0
// Wifi is 192.168.43.1 and 255.255.255.0
+ // P2P is 192.168.49.1 and 255.255.255.0
// BT is limited to max default of 5 connections. 192.168.44.1 to 192.168.48.1
// with 255.255.255.0
@@ -117,7 +118,7 @@ public class Tethering extends BaseNetworkObserver {
"192.168.42.2", "192.168.42.254", "192.168.43.2", "192.168.43.254",
"192.168.44.2", "192.168.44.254", "192.168.45.2", "192.168.45.254",
"192.168.46.2", "192.168.46.254", "192.168.47.2", "192.168.47.254",
- "192.168.48.2", "192.168.48.254",
+ "192.168.48.2", "192.168.48.254", "192.168.49.2", "192.168.49.254",
};
private String[] mDefaultDnsServers;
@@ -699,6 +700,10 @@ public class Tethering extends BaseNetworkObserver {
return retVal;
}
+ public String[] getTetheredDhcpRanges() {
+ return mDhcpRange;
+ }
+
public String[] getErroredIfaces() {
ArrayList