IBridgeService.java 源代码
package com.x8zs.bridge;
import android.os.Binder;
import android.os.IBinder;
import android.os.IInterface;
import android.os.Parcel;
import com.x8zs.bridge.IPackCallback;
public interface IBridgeService extends IInterface {
public static class Default implements IBridgeService {
@Override
public IBinder asBinder() {
return null;
}
@Override
public void registerPackCallback(String str, IPackCallback iPackCallback) {
}
}
public static abstract class Stub extends Binder implements IBridgeService {
private static final String DESCRIPTOR = "com.x8zs.bridge.IBridgeService";
static final int TRANSACTION_registerPackCallback = 1;
public static class Proxy implements IBridgeService {
public static IBridgeService sDefaultImpl;
private IBinder mRemote;
Proxy(IBinder iBinder) {
this.mRemote = iBinder;
}
@Override
public IBinder asBinder() {
return this.mRemote;
}
public String getInterfaceDescriptor() {
return Stub.DESCRIPTOR;
}
@Override
public void registerPackCallback(String str, IPackCallback iPackCallback) {
IBinder iBinder;
Parcel obtain = Parcel.obtain();
Parcel obtain2 = Parcel.obtain();
try {
obtain.writeInterfaceToken(Stub.DESCRIPTOR);
obtain.writeString(str);
if (iPackCallback != null) {
iBinder = iPackCallback.asBinder();
} else {
iBinder = null;
}
obtain.writeStrongBinder(iBinder);
if (!this.mRemote.transact(1, obtain, obtain2, 0) && Stub.getDefaultImpl() != null) {
Stub.getDefaultImpl().registerPackCallback(str, iPackCallback);
} else {
obtain2.readException();
}
} finally {
obtain2.recycle();
obtain.recycle();
}
}
}
public Stub() {
attachInterface(this, DESCRIPTOR);
}
public static IBridgeService asInterface(IBinder iBinder) {
if (iBinder == null) {
return null;
}
IInterface queryLocalInterface = iBinder.queryLocalInterface(DESCRIPTOR);
if (queryLocalInterface != null && (queryLocalInterface instanceof IBridgeService)) {
return (IBridgeService) queryLocalInterface;
}
return new Proxy(iBinder);
}
public static IBridgeService getDefaultImpl() {
return Proxy.sDefaultImpl;
}
public static boolean setDefaultImpl(IBridgeService iBridgeService) {
if (Proxy.sDefaultImpl == null) {
if (iBridgeService != null) {
Proxy.sDefaultImpl = iBridgeService;
return true;
}
return false;
}
throw new IllegalStateException("setDefaultImpl() called twice");
}
@Override
public IBinder asBinder() {
return this;
}
@Override
public boolean onTransact(int i6, Parcel parcel, Parcel parcel2, int i7) {
if (i6 != 1) {
if (i6 != 1598968902) {
return super.onTransact(i6, parcel, parcel2, i7);
}
parcel2.writeString(DESCRIPTOR);
return true;
}
parcel.enforceInterface(DESCRIPTOR);
registerPackCallback(parcel.readString(), IPackCallback.Stub.asInterface(parcel.readStrongBinder()));
parcel2.writeNoException();
return true;
}
}
void registerPackCallback(String str, IPackCallback iPackCallback);
}