Add a registerSystemDefaultNetworkCallback method.
This method allows internal components to track the system default network. This differs from registerDefaultNetworkCallback because that method sends callbacks for the default network for the UID that called it. This may not be the system default network, for example, when a VPN is up and applies to the UID. Bug: 173331190 Test: new unit tests in ConnectivityServiceTest Test: new unit tests in ConnectivityManagerTest Test: new CTS tests in ConnectivityServiceTest Test: new CTS tests in HostsideVpnTests in other CL in this topic Change-Id: Id02748a2183f71b71ff2a53a580466b9dcecaa93
This commit is contained in:
@@ -35,6 +35,7 @@ import static android.net.NetworkCapabilities.TRANSPORT_WIFI;
|
||||
import static android.net.NetworkRequest.Type.BACKGROUND_REQUEST;
|
||||
import static android.net.NetworkRequest.Type.REQUEST;
|
||||
import static android.net.NetworkRequest.Type.TRACK_DEFAULT;
|
||||
import static android.net.NetworkRequest.Type.TRACK_SYSTEM_DEFAULT;
|
||||
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
@@ -329,6 +330,9 @@ public class ConnectivityManagerTest {
|
||||
mustFail(() -> { manager.registerDefaultNetworkCallback(null, handler); });
|
||||
mustFail(() -> { manager.registerDefaultNetworkCallback(callback, null); });
|
||||
|
||||
mustFail(() -> { manager.registerSystemDefaultNetworkCallback(null, handler); });
|
||||
mustFail(() -> { manager.registerSystemDefaultNetworkCallback(callback, null); });
|
||||
|
||||
mustFail(() -> { manager.unregisterNetworkCallback(nullCallback); });
|
||||
mustFail(() -> { manager.unregisterNetworkCallback(nullIntent); });
|
||||
mustFail(() -> { manager.releaseNetworkRequest(nullIntent); });
|
||||
@@ -377,6 +381,13 @@ public class ConnectivityManagerTest {
|
||||
eq(BACKGROUND_REQUEST.ordinal()), any(), anyInt(), any(), eq(TYPE_NONE),
|
||||
eq(testPkgName), eq(testAttributionTag));
|
||||
reset(mService);
|
||||
|
||||
Handler handler = new Handler(ConnectivityThread.getInstanceLooper());
|
||||
manager.registerSystemDefaultNetworkCallback(callback, handler);
|
||||
verify(mService).requestNetwork(eq(null),
|
||||
eq(TRACK_SYSTEM_DEFAULT.ordinal()), any(), anyInt(), any(), eq(TYPE_NONE),
|
||||
eq(testPkgName), eq(testAttributionTag));
|
||||
reset(mService);
|
||||
}
|
||||
|
||||
static Message makeMessage(NetworkRequest req, int messageType) {
|
||||
|
||||
Reference in New Issue
Block a user