package com.tws.plugin.servicemanager; import android.os.Bundle; import android.os.IBinder; public class ProcessBinder extends android.os.Binder { public static final int FIRST_CODE = IBinder.FIRST_CALL_TRANSACTION + 0; private final String DESCRIPTOR; public ProcessBinder(String descipter) { DESCRIPTOR = descipter; this.attachInterface(null, DESCRIPTOR); } @Override public final boolean onTransact(int code, android.os.Parcel data, android.os.Parcel reply, int flags) throws android.os.RemoteException { switch (code) { case INTERFACE_TRANSACTION: { reply.writeString(DESCRIPTOR); return true; } case FIRST_CODE: { data.enforceInterface(DESCRIPTOR); Bundle param; if ((0 != data.readInt())) { param = Bundle.CREATOR.createFromParcel(data); } else { param = null; } Bundle result = MethodRouter.routerToInstance(param); reply.writeNoException(); if ((result != null)) { reply.writeInt(1); result.writeToParcel(reply, android.os.Parcelable.PARCELABLE_WRITE_RETURN_VALUE); } else { reply.writeInt(0); } return true; } } return super.onTransact(code, data, reply, flags); } }