Start Nearby from Connectivity ServiceInitializer
On T+, start and register Nearby services from the initializer, and send
proper callbacks.
Bug: 189355156
Test: Booted, service started
Ignore-AOSP-First: needs a dedicated change to resolve conflicts in
other branches
Change-Id: I7e280495f1eefada0939dad2ce7f47f45885ad66
diff --git a/service-t/Android.bp b/service-t/Android.bp
index 48c74c6..48ba008 100644
--- a/service-t/Android.bp
+++ b/service-t/Android.bp
@@ -39,6 +39,7 @@
"framework-connectivity.impl",
"framework-connectivity-tiramisu.impl",
"service-connectivity-pre-jarjar",
+ "service-nearby",
"unsupportedappusage",
],
static_libs: [
diff --git a/service-t/src/com/android/server/ConnectivityServiceInitializer.java b/service-t/src/com/android/server/ConnectivityServiceInitializer.java
index 23d8bdc..c5090d9 100644
--- a/service-t/src/com/android/server/ConnectivityServiceInitializer.java
+++ b/service-t/src/com/android/server/ConnectivityServiceInitializer.java
@@ -20,15 +20,17 @@
import android.util.Log;
import com.android.modules.utils.build.SdkLevel;
+import com.android.server.nearby.NearbyService;
/**
* Connectivity service initializer for core networking. This is called by system server to create
- * a new instance of ConnectivityService.
+ * a new instance of connectivity services.
*/
public final class ConnectivityServiceInitializer extends SystemService {
private static final String TAG = ConnectivityServiceInitializer.class.getSimpleName();
private final ConnectivityService mConnectivity;
private final NsdService mNsdService;
+ private final NearbyService mNearbyService;
public ConnectivityServiceInitializer(Context context) {
super(context);
@@ -36,6 +38,7 @@
System.loadLibrary("service-connectivity");
mConnectivity = new ConnectivityService(context);
mNsdService = createNsdService(context);
+ mNearbyService = createNearbyService(context);
}
@Override
@@ -47,6 +50,19 @@
Log.i(TAG, "Registering " + Context.NSD_SERVICE);
publishBinderService(Context.NSD_SERVICE, mNsdService, /* allowIsolated= */ false);
}
+
+ if (mNearbyService != null) {
+ Log.i(TAG, "Registering " + Context.NEARBY_SERVICE);
+ publishBinderService(Context.NEARBY_SERVICE, mNearbyService,
+ /* allowIsolated= */ false);
+ }
+ }
+
+ @Override
+ public void onBootPhase(int phase) {
+ if (mNearbyService != null) {
+ mNearbyService.onBootPhase(phase);
+ }
}
/** Return NsdService instance or null if current SDK is lower than T */
@@ -59,4 +75,10 @@
return null;
}
}
+
+ /** Return Nearby service instance or null if current SDK is lower than T */
+ private NearbyService createNearbyService(final Context context) {
+ if (!SdkLevel.isAtLeastT()) return null;
+ return new NearbyService(context);
+ }
}