我正面临这样的问题:我有一个远程(不同进程)绑定服务,它定义了一个IntentFilter
带有操作字符串的。bindService(..)
我的客户端在其调用中使用相同的操作字符串绑定到它。
现在,当我使用完全不同的AIDL接口但定义了相同的 IntentFilter实现另一个服务时,安装此服务并删除旧服务:
- 我的客户仍然能够绑定
- 我的客户端甚至能够调用所需的方法(比如 void print(Payload))客户端不会抱怨,服务器端也不会抱怨
我的问题:有没有办法在运行时检查远程服务正在实现的接口?
我发现的唯一可能的方法是检查ComponentName
. ServiceConnection
然而,这有一个含义:将来我将无法交换服务的实现。
还是我错过了什么?