当前位置:编程学习 > wap >>

如何使用自己的aidl

先在一个app里写了一个aidl并且实现了sercice,现在想在另外一个app里使用这个服务,请问该如何import前一个应用中aidl生成的java文件?我是在linux环境下,可以编译android源码。

网上搜了一大堆一大堆,都是将eclipse下将前一个app中自动生成java文件复制过来。但是我现在的情况是要在linux下用mm编译的情况,搞不清楚该怎么import了。。求帮助~~ --------------------编程问答-------------------- 不用import吧,你在写aidl的项目里面SDK会自动使用代理模式公布一个接口,然后其他的项目里面调用这个接口就可以了啊,跟J2EE里面的WebService很像的 --------------------编程问答-------------------- 不import我找不到定义的接口的类啊,没法编译啊。。。

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

我的理解也是android编译是会通过一种方式公布这个接口,但是我在编译工程B的时候实在是不知道怎么知道这个ITest的定义。。。 --------------------编程问答-------------------- 在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啊。。。

求真相。。。
我先按照这个方法试试看 --------------------编程问答-------------------- 杯具,服务发布了以后只需要在另外需要调用的里面重写一个onServiceConnect()回调就可以了啊。可惜我在外面外派,家里有现成的例子没法给你。 --------------------编程问答-------------------- 楼主,方法可找到了? --------------------编程问答-------------------- 擦。我找到了。具体可以参照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

--------------------编程问答-------------------- aidl是编译的时候就需要的,把android.mk里面include了就行了,两个app都需要include --------------------编程问答--------------------
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,