基本上我想实现一个服务,公开他的界面,以便在其他应用程序中通过Android IPC使用。然后,客户端应用程序应该能够注册Messenger以接收来自服务的消息。由于Messenger是Parcelable,我认为它应该简单:
package com.example;
import android.os.Messenger;
interface MyRemoteService {
void registerMessenger(in Messenger messenger);
}
但是,我收到错误couldn't find import for class android.os.Messenger
我问Google并从2010年发现了一个blog post,其中问题通过修改android sdk中的platform/android-<#>/framework.aidl
来解决,因此每个开发人员都必须在他/她的本地计算机上修改该文件,对我来说不是一个可行的解决方案。
我可以用Android 7 API(2.1)支持的另一种方式注册Messenger吗?
答案 0 :(得分:1)
在项目中创建一个名为Messenger.aidl的文件:
package com.your.package.here;
parcelable android.os.Messenger;
答案 1 :(得分:1)
似乎使用以下方法:
使用包Messenger.aidl
中的以下内容创建android.os
:
package android.os;
parcelable Messenger;
像这样创建自己的aidl文件:
package com.example.name;
import android.os.Messenger;
interface IRemoteService {
void registerMessenger(in Messenger messenger);
}