如何在Android IPC中使用Messenger作为参数

时间:2011-07-28 11:55:54

标签: android android-sdk-2.1

基本上我想实现一个服务,公开他的界面,以便在其他应用程序中通过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吗?

2 个答案:

答案 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);
}