diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java index 70c8750623..2aff5f2d69 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 4bca7fefbc..3bfd88ec6c 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 b7a1a55e14..2d1921e794 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();