diff options
-rw-r--r-- | core/java/android/os/ServiceManagerNative.java | 75 |
1 files changed, 7 insertions, 68 deletions
diff --git a/core/java/android/os/ServiceManagerNative.java b/core/java/android/os/ServiceManagerNative.java index b7c026c7f87c..6fd3adb284a0 100644 --- a/core/java/android/os/ServiceManagerNative.java +++ b/core/java/android/os/ServiceManagerNative.java @@ -17,16 +17,18 @@ package android.os; import android.annotation.UnsupportedAppUsage; -import java.util.ArrayList; +import java.util.ArrayList; /** * Native implementation of the service manager. Most clients will only - * care about getDefault() and possibly asInterface(). + * care about asInterface(). + * * @hide */ -public abstract class ServiceManagerNative extends Binder implements IServiceManager -{ +public final class ServiceManagerNative { + private ServiceManagerNative() {} + /** * Cast a Binder object into a service manager interface, generating * a proxy if needed. @@ -38,76 +40,13 @@ public abstract class ServiceManagerNative extends Binder implements IServiceMan return null; } IServiceManager in = - (IServiceManager)obj.queryLocalInterface(descriptor); + (IServiceManager) obj.queryLocalInterface(IServiceManager.descriptor); if (in != null) { return in; } return new ServiceManagerProxy(obj); } - - public ServiceManagerNative() - { - attachInterface(this, descriptor); - } - - public boolean onTransact(int code, Parcel data, Parcel reply, int flags) - { - try { - switch (code) { - case IServiceManager.GET_SERVICE_TRANSACTION: { - data.enforceInterface(IServiceManager.descriptor); - String name = data.readString(); - IBinder service = getService(name); - reply.writeStrongBinder(service); - return true; - } - - case IServiceManager.CHECK_SERVICE_TRANSACTION: { - data.enforceInterface(IServiceManager.descriptor); - String name = data.readString(); - IBinder service = checkService(name); - reply.writeStrongBinder(service); - return true; - } - - case IServiceManager.ADD_SERVICE_TRANSACTION: { - data.enforceInterface(IServiceManager.descriptor); - String name = data.readString(); - IBinder service = data.readStrongBinder(); - boolean allowIsolated = data.readInt() != 0; - int dumpPriority = data.readInt(); - addService(name, service, allowIsolated, dumpPriority); - return true; - } - - case IServiceManager.LIST_SERVICES_TRANSACTION: { - data.enforceInterface(IServiceManager.descriptor); - int dumpPriority = data.readInt(); - String[] list = listServices(dumpPriority); - reply.writeStringArray(list); - return true; - } - - case IServiceManager.SET_PERMISSION_CONTROLLER_TRANSACTION: { - data.enforceInterface(IServiceManager.descriptor); - IPermissionController controller = - IPermissionController.Stub.asInterface( - data.readStrongBinder()); - setPermissionController(controller); - return true; - } - } - } catch (RemoteException e) { - } - - return false; - } - - public IBinder asBinder() - { - return this; - } } class ServiceManagerProxy implements IServiceManager { |