• 大小: 4.42MB
    文件类型: .gz
    金币: 1
    下载: 0 次
    发布日期: 2023-09-27
  • 语言: 其他
  • 标签: aidl  service  

资源简介

aidl 方式client端和服务端方式通信的例子

资源截图

代码片段和文件信息

/*
 * This file is auto-generated.  DO NOT MODIFY.
 * Original file: /home/songhanqing/workspace/aidlexample/src/com/aidl/aidlservice/example.aidl
 */
package com.aidl.aidlservice;
public interface example extends android.os.IInterface
{
/** Local-side IPC implementation stub class. */
public static abstract class Stub extends android.os.Binder implements com.aidl.aidlservice.example
{
private static final java.lang.String DEscriptOR = “com.aidl.aidlservice.example“;
/** Construct the stub at attach it to the interface. */
public Stub()
{
this.attachInterface(this DEscriptOR);
}
/**
 * Cast an IBinder object into an com.aidl.aidlservice.example interface
 * generating a proxy if needed.
 */
public static com.aidl.aidlservice.example asInterface(android.os.IBinder obj)
{
if ((obj==null)) {
return null;
}
android.os.IInterface iin = obj.queryLocalInterface(DEscriptOR);
if (((iin!=null)&&(iin instanceof com.aidl.aidlservice.example))) {
return ((com.aidl.aidlservice.example)iin);
}
return new com.aidl.aidlservice.example.Stub.Proxy(obj);
}
@Override public android.os.IBinder asBinder()
{
return this;
}
@Override public 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 TRANSACTION_add:
{
data.enforceInterface(DEscriptOR);
int _arg0;
_arg0 = data.readInt();
int _arg1;
_arg1 = data.readInt();
int _result = this.add(_arg0 _arg1);
reply.writeNoException();
reply.writeInt(_result);
return true;
}
}
return super.onTransact(code data reply flags);
}
private static class Proxy implements com.aidl.aidlservice.example
{
private android.os.IBinder mRemote;
Proxy(android.os.IBinder remote)
{
mRemote = remote;
}
@Override public android.os.IBinder asBinder()
{
return mRemote;
}
public java.lang.String getInterfaceDescriptor()
{
return DEscriptOR;
}
@Override public int add(int a int b) throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain();
android.os.Parcel _reply = android.os.Parcel.obtain();
int _result;
try {
_data.writeInterfaceToken(DEscriptOR);
_data.writeInt(a);
_data.writeInt(b);
mRemote.transact(Stub.TRANSACTION_add _data _reply 0);
_reply.readException();
_result = _reply.readInt();
}
finally {
_reply.recycle();
_data.recycle();
}
return _result;
}
}
static final int TRANSACTION_add = (android.os.IBinder.FIRST_CALL_TRANSACTION + 0);
}
public int add(int a int b) throws android.os.RemoteException;
}

评论

共有 条评论