diff --git a/core/java/android/app/ContextImpl.java b/core/java/android/app/ContextImpl.java index 9053af27184b8..1634d11870e85 100644 --- a/core/java/android/app/ContextImpl.java +++ b/core/java/android/app/ContextImpl.java @@ -73,6 +73,8 @@ import android.media.MediaRouter; import android.media.session.MediaSessionManager; import android.net.ConnectivityManager; import android.net.IConnectivityManager; +import android.net.EthernetManager; +import android.net.IEthernetManager; import android.net.INetworkPolicyManager; import android.net.NetworkPolicyManager; import android.net.NetworkScoreManager; @@ -599,6 +601,13 @@ class ContextImpl extends Context { return new WifiScanner(ctx.getOuterContext(), service); }}); + registerService(ETHERNET_SERVICE, new ServiceFetcher() { + public Object createService(ContextImpl ctx) { + IBinder b = ServiceManager.getService(ETHERNET_SERVICE); + IEthernetManager service = IEthernetManager.Stub.asInterface(b); + return new EthernetManager(ctx.getOuterContext(), service); + }}); + registerService(WINDOW_SERVICE, new ServiceFetcher() { Display mDefaultDisplay; public Object getService(ContextImpl ctx) { diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java index 9e02e4b0a076c..d0ac9c923d08c 100644 --- a/core/java/android/content/Context.java +++ b/core/java/android/content/Context.java @@ -2069,6 +2069,9 @@ public abstract class Context { *
{@link #WIFI_P2P_SERVICE} ("wifip2p") *
A {@link android.net.wifi.p2p.WifiP2pManager WifiP2pManager} for management of * Wi-Fi Direct connectivity. + *
{@link #ETHERNET_SERVICE} ("ethernet") + *
A {@link android.net.ethernet.EthernetManager EthernetManager} for + * management of Ethernet connectivity. *
{@link #INPUT_METHOD_SERVICE} ("input_method") *
An {@link android.view.inputmethod.InputMethodManager InputMethodManager} * for management of input methods. @@ -2380,6 +2383,18 @@ public abstract class Context { */ public static final String WIFI_SCANNING_SERVICE = "wifiscanner"; + /** + * Use with {@link #getSystemService} to retrieve a {@link + * android.net.ethernet.EthernetManager} for handling management of + * Ethernet access. + * + * @see #getSystemService + * @see android.net.ethernet.EthernetManager + * + * @hide + */ + public static final String ETHERNET_SERVICE = "ethernet"; + /** * Use with {@link #getSystemService} to retrieve a {@link * android.net.nsd.NsdManager} for handling management of network service diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java index 55ae9c6f737cd..de46b1629ce75 100644 --- a/services/java/com/android/server/SystemServer.java +++ b/services/java/com/android/server/SystemServer.java @@ -130,6 +130,8 @@ public final class SystemServer { "com.android.server.wifi.p2p.WifiP2pService"; private static final String HDMI_CEC_SERVICE_CLASS = "com.android.server.hdmi.HdmiCecService"; + private static final String ETHERNET_SERVICE_CLASS = + "com.android.server.ethernet.EthernetService"; private final int mFactoryTestMode; private Timer mProfilerSnapshotTimer; @@ -659,6 +661,12 @@ public final class SystemServer { reportWtf("starting Wi-Fi Scanning Service", e); } + try { + mSystemServiceManager.startService(ETHERNET_SERVICE_CLASS); + } catch (Throwable e) { + reportWtf("starting Ethernet Service", e); + } + try { Slog.i(TAG, "Connectivity Service"); connectivity = new ConnectivityService(