2010-12-05 139 views
2

我想要有一个作为android上的服务运行的应用程序,其他应用程序将分发,需要与它通信。如何在Android上的应用程序之间进行通信

它已经作为一项服务实施,运行的客户端应用程序在打包到同一应用程序中时工作正常。

但是以下http://developer.android.com/guide/developing/tools/aidl.html我有使这项工作对于客户端应用程序的问题,特别是线

“在您的实现ServiceConnection.onServiceConnected(),你会收到一个IBinder实例(称为服务)。通话YourInterfaceName .Stub.asInterface((IBinder)服务)将返回的参数转换为YourInterface类型。

因为应用程序单独发布我没有获得YourInterfaceName和对面的客户端应用程序肯定感觉就像“走错了路”

如果有人可以提供一个指针文件/一本书/源代码,将其复制这将是非常有益的,感谢

(和原谅讽刺我的名字,是玩笑一点的)

回答

2

书“临安卓2”对AIDL一个体面的例子...

0

究竟该应用程序所需要的传达给对方?

如果是数据,那么你可以看看ContentProvider

您也可以通过Intent.putExtra分享信息。

+0

其核心服务和应用程序需要与之通信,以决定该服务是否已经启动与否。实际的代码在https://github.com/daleharvey/couch-android-launcher/blob/api/src/org/couchdb/android/CouchService.java上使用CouchDB的客户端需要知道它是否具有开始等 – 2010-12-05 22:16:55

0

您必须将Binder IPC客户端的代码部分复制到客户端项目中(或以其他方式包括或重写)。

+0

你可以扩大这个?我在客户端内部实现客户端代码没有问题,它只是我看到的每个示例http://developer.android.com/guide/developing/tool或http://developer.android.com/reference/android/ app/Service.html假定RemoteService类可供客户端使用,并且我不能将所有代码放入客户端,因为它会使用本地版本而不是连接到远程服务器。 – 2010-12-06 00:23:09

+0

您保留构成界面应用程序端的部分并删除构成服务端的部分(或者简单地删除实例化的部分) – 2010-12-06 00:50:56

相关问题