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
Merged-In: I7e280495f1eefada0939dad2ce7f47f45885ad66
Change-Id: Ieca032c80cb37e424d07c500257a844c8418fe3e
This commit is contained in:
Remi NGUYEN VAN
2022-01-20 18:40:29 +09:00
committed by Tyler Wear
parent b52c67d5d7
commit 5906c8b290
2 changed files with 24 additions and 1 deletions

View File

@@ -38,6 +38,7 @@ java_library {
"framework-connectivity-t-pre-jarjar", "framework-connectivity-t-pre-jarjar",
"framework-tethering.stubs.module_lib", "framework-tethering.stubs.module_lib",
"service-connectivity-pre-jarjar", "service-connectivity-pre-jarjar",
"service-nearby",
"unsupportedappusage", "unsupportedappusage",
], ],
static_libs: [ static_libs: [

View File

@@ -20,16 +20,18 @@ import android.content.Context;
import android.util.Log; import android.util.Log;
import com.android.modules.utils.build.SdkLevel; 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 * 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 { public final class ConnectivityServiceInitializer extends SystemService {
private static final String TAG = ConnectivityServiceInitializer.class.getSimpleName(); private static final String TAG = ConnectivityServiceInitializer.class.getSimpleName();
private final ConnectivityService mConnectivity; private final ConnectivityService mConnectivity;
private final IpSecService mIpSecService; private final IpSecService mIpSecService;
private final NsdService mNsdService; private final NsdService mNsdService;
private final NearbyService mNearbyService;
public ConnectivityServiceInitializer(Context context) { public ConnectivityServiceInitializer(Context context) {
super(context); super(context);
@@ -38,6 +40,7 @@ public final class ConnectivityServiceInitializer extends SystemService {
mConnectivity = new ConnectivityService(context); mConnectivity = new ConnectivityService(context);
mIpSecService = createIpSecService(context); mIpSecService = createIpSecService(context);
mNsdService = createNsdService(context); mNsdService = createNsdService(context);
mNearbyService = createNearbyService(context);
} }
@Override @Override
@@ -55,6 +58,19 @@ public final class ConnectivityServiceInitializer extends SystemService {
Log.i(TAG, "Registering " + Context.NSD_SERVICE); Log.i(TAG, "Registering " + Context.NSD_SERVICE);
publishBinderService(Context.NSD_SERVICE, mNsdService, /* allowIsolated= */ false); 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);
}
} }
/** /**
@@ -76,4 +92,10 @@ public final class ConnectivityServiceInitializer extends SystemService {
return null; 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);
}
} }