Build framework-connectivity-tiramisu library
- Move nsd APIs and build framework-connectivity-tiramisu library - Add nsd associated hidden apis - Build service-connectivity-tiramisu-pre-jarjar library for T+ services. - Move ConnectivityServiceInitialiizer to service-t directory to create S+ service instances which can avoid dependency on lower sdk library. Bug: 206893064 Test: atest FrameworksNetTests CtsNetTestCases CTS-Coverage-Bug: 207804007 Merged-In: I9628716f5c38047ff4ea2346b27589077259c436 Change-Id: I9628716f5c38047ff4ea2346b27589077259c436
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
/*
|
||||
* Copyright (C) 2020 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.server;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.Log;
|
||||
|
||||
import com.android.modules.utils.build.SdkLevel;
|
||||
|
||||
/**
|
||||
* Connectivity service initializer for core networking. This is called by system server to create
|
||||
* a new instance of ConnectivityService.
|
||||
*/
|
||||
public final class ConnectivityServiceInitializer extends SystemService {
|
||||
private static final String TAG = ConnectivityServiceInitializer.class.getSimpleName();
|
||||
private final ConnectivityService mConnectivity;
|
||||
private final NsdService mNsdService;
|
||||
|
||||
public ConnectivityServiceInitializer(Context context) {
|
||||
super(context);
|
||||
// Load JNI libraries used by ConnectivityService and its dependencies
|
||||
System.loadLibrary("service-connectivity");
|
||||
mConnectivity = new ConnectivityService(context);
|
||||
mNsdService = createNsdService(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStart() {
|
||||
Log.i(TAG, "Registering " + Context.CONNECTIVITY_SERVICE);
|
||||
publishBinderService(Context.CONNECTIVITY_SERVICE, mConnectivity,
|
||||
/* allowIsolated= */ false);
|
||||
if (mNsdService != null) {
|
||||
Log.i(TAG, "Registering " + Context.NSD_SERVICE);
|
||||
publishBinderService(Context.NSD_SERVICE, mNsdService, /* allowIsolated= */ false);
|
||||
}
|
||||
}
|
||||
|
||||
/** Return NsdService instance or null if current SDK is lower than T */
|
||||
private NsdService createNsdService(final Context context) {
|
||||
if (!SdkLevel.isAtLeastT()) return null;
|
||||
try {
|
||||
return NsdService.create(context);
|
||||
} catch (InterruptedException e) {
|
||||
Log.d(TAG, "Unable to get NSD service", e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user