我有一个应用程序可用于IPC AIDL进程,我想在进程(我的应用程序和AIDL进程)之间共享流,然后如何进行。 我知道我们只能通过aidl发送原始数据类型和parcelable对象,但我的要求是将输入和输出流发送到aidl进程。 如何实现这一点。
答案 0 :(得分:1)
您无法通过AIDL直接发送流。
您可能需要将数据流包装在ContentProvider
中,因为它支持流式传输。然后,通过AIDL传递指向您的提供商及其流的Uri
。
根据流的来源,您可能会获得基础数据的ParcelFileDescriptor
,并且可以通过AIDL传递。
答案 1 :(得分:1)
您可以使用ParcelFileDescriptor.createPipe()
。请参阅OpenKeychain的API库中的ParcelFileDescriptorUtil。
调用应用程序使用一个ParcelFileDescriptor
来读取(或写入),另一个传递给接收应用程序并使用它来编写(或读取)。