不用import吧,你在写aidl的项目里面SDK会自动使用代理模式公布一个接口,然后其他的项目里面调用这个接口就可以了啊,跟J2EE里面的WebService很像的

解决方案 »

  1.   

    不import我找不到定义的接口的类啊,没法编译啊比如我用aidl写了一个接口ITest,A项目中包含了这个ITest以及其实现,在项目B中我需要使用ITest的方法,那么我首先要知道ITest的定义啊,很多示例中都是直接把A项目ITest.aidl生成的ITest.java直接给复制到B项目中,这样当然可以找得到但是实际编译整体android的工程时,不可能这么做的。我的理解也是android编译是会通过一种方式公布这个接口,但是我在编译工程B的时候实在是不知道怎么知道这个ITest的定义
      

  2.   

    在aidl的sdk文档中有这么一段话The client must also have access to the interface class, so if the client and service are in separate applications, then the client's application must have a copy of the .aidl file in its src/ directory (which generates the android.os.Binder interface—providing the client access to the AIDL methods).看来还是要在项目B中包含一份项目A所定义的aidl的copy啊求真相
    我先按照这个方法试试看
      

  3.   

    杯具,服务发布了以后只需要在另外需要调用的里面重写一个onServiceConnect()回调就可以了啊。可惜我在外面外派,家里有现成的例子没法给你。
      

  4.   

    擦。我找到了。具体可以参照Music的Android.mk即可。
    LOCAL_SRC_FILES := $(call all-java-files-under, src) \
        src/com/android/music/IMediaPlaybackService.aidl \
        src/com/mediatek/bluetooth/avrcp/IBTAvrcpMusic.aidl \
        src/com/mediatek/bluetooth/avrcp/IBTAvrcpMusicCallback.aidl
      

  5.   

    aidl是编译的时候就需要的,把android.mk里面include了就行了,两个app都需要include