diff --git a/tests/robotests/Android.bp b/tests/robotests/Android.bp
index d7d1d51..3e7aa47 100644
--- a/tests/robotests/Android.bp
+++ b/tests/robotests/Android.bp
@@ -60,9 +60,12 @@
     static_libs: [
         "SettingsLib-robo-testutils",
 	"android-support-annotations",
+        "androidx.test.core",
+        "androidx.test.runner",
+        "androidx.test.ext.junit",
     ],
 
-    java_resource_dirs: ["config"],
+    java_resource_dirs: ["config", "resources"],
 
     instrumentation_for: "SettingsRoboTestStub",
 
diff --git a/tests/robotests/config/robolectric.properties b/tests/robotests/config/robolectric.properties
index e40e51c..ee805c4 100644
--- a/tests/robotests/config/robolectric.properties
+++ b/tests/robotests/config/robolectric.properties
@@ -1,3 +1,4 @@
 sdk=NEWEST_SDK
 shadows=\
-   com.android.settings.testutils.shadow.ShadowThreadUtils
+   com.android.settings.testutils.shadow.ShadowThreadUtils \
+   com.android.settings.network.ShadowServiceManagerExtend
diff --git a/tests/robotests/resources/META-INF/services/androidx.test.internal.platform.ThreadChecker b/tests/robotests/resources/META-INF/services/androidx.test.internal.platform.ThreadChecker
new file mode 100644
index 0000000..55104ea
--- /dev/null
+++ b/tests/robotests/resources/META-INF/services/androidx.test.internal.platform.ThreadChecker
@@ -0,0 +1 @@
+org.robolectric.android.internal.NoOpThreadChecker
diff --git a/tests/robotests/resources/META-INF/services/androidx.test.internal.platform.app.ActivityInvoker b/tests/robotests/resources/META-INF/services/androidx.test.internal.platform.app.ActivityInvoker
new file mode 100644
index 0000000..e9944b5
--- /dev/null
+++ b/tests/robotests/resources/META-INF/services/androidx.test.internal.platform.app.ActivityInvoker
@@ -0,0 +1 @@
+org.robolectric.android.internal.LocalActivityInvoker
diff --git a/tests/robotests/resources/META-INF/services/androidx.test.internal.platform.content.PermissionGranter b/tests/robotests/resources/META-INF/services/androidx.test.internal.platform.content.PermissionGranter
new file mode 100644
index 0000000..3bcad1c
--- /dev/null
+++ b/tests/robotests/resources/META-INF/services/androidx.test.internal.platform.content.PermissionGranter
@@ -0,0 +1 @@
+org.robolectric.android.internal.LocalPermissionGranter
diff --git a/tests/robotests/resources/META-INF/services/androidx.test.internal.platform.os.ControlledLooper b/tests/robotests/resources/META-INF/services/androidx.test.internal.platform.os.ControlledLooper
new file mode 100644
index 0000000..add33e6
--- /dev/null
+++ b/tests/robotests/resources/META-INF/services/androidx.test.internal.platform.os.ControlledLooper
@@ -0,0 +1 @@
+org.robolectric.android.internal.LocalControlledLooper
\ No newline at end of file
diff --git a/tests/robotests/resources/META-INF/services/androidx.test.platform.ui.UiController b/tests/robotests/resources/META-INF/services/androidx.test.platform.ui.UiController
new file mode 100644
index 0000000..523d6ee
--- /dev/null
+++ b/tests/robotests/resources/META-INF/services/androidx.test.platform.ui.UiController
@@ -0,0 +1 @@
+org.robolectric.android.internal.LocalUiController
diff --git a/tests/robotests/src/com/android/settings/network/ShadowServiceManagerExtend.java b/tests/robotests/src/com/android/settings/network/ShadowServiceManagerExtend.java
new file mode 100644
index 0000000..759de88
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/network/ShadowServiceManagerExtend.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network;
+
+import android.os.Binder;
+import android.os.IBinder;
+import android.os.IInterface;
+import android.os.ServiceManager;
+
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+import org.robolectric.shadows.ShadowServiceManager;
+import org.robolectric.util.ReflectionHelpers;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@Implements(value = ServiceManager.class)
+public class ShadowServiceManagerExtend extends ShadowServiceManager {
+    private static final Map<String, IBinder> EXTRA_SERVICES = new HashMap<>();
+
+    @Implementation
+    public static IBinder getService(String name) {
+        final IBinder iBinder = ShadowServiceManager.getService(name);
+        if (iBinder == null) {
+            return EXTRA_SERVICES.get(name);
+        }
+        return iBinder;
+    }
+
+    public static void addService(String name, Class<? extends IInterface> classService,
+            String fullNameClass) {
+        final Binder service = new Binder();
+        service.attachInterface(ReflectionHelpers.createNullProxy(classService), fullNameClass);
+
+        ShadowServiceManager.addService(name, service);
+        EXTRA_SERVICES.put(name, service);
+    }
+}
