开发者

How to use Messenger as argument in Android IPC

Basically I want to implement a service that exposes his interface to be used via Android IPC in other apps. The client application should then be able to register a Messenger to receive messages from the service. Since Messenger is Parcelable I thought it should be as simple as:

package com.example;
import android.os.Messenger;

interface MyRemoteService 开发者_开发知识库{
    void registerMessenger(in Messenger messenger);
}

However, I get the error couldn't find import for class android.os.Messenger

I asked Google and found a blog post from 2010 in which the problem was solved by modifying the platform/android-<#>/framework.aidl inside the android sdk so every developer has to modify that file on his/her local machine, which is not a viable solution for me.

Can I register the Messenger in another way that is supported in the Android 7 API (2.1)?


It seems to work using the following method:

Create Messenger.aidl with the following contents in package android.os:

package android.os;

parcelable Messenger;

Create your own aidl file like this:

package com.example.name;

import android.os.Messenger;

interface IRemoteService {
    void registerMessenger(in Messenger messenger);
}


Create a file titled Messenger.aidl in your project:

package com.your.package.here;

parcelable android.os.Messenger;
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜