5

我需要在 Android 服务和客户端之间传输字节数组。我试图定义一个aidl接口,如:

interface IMyService {
    int putBytes(String key, in List<Byte> bytes);
    int getBytes(String key, out List<Byte> bytes);    
}

但是,它不编译。错误是:

[aidl] E:\workspace\RAMService\src\com\connexis\service\mem\IRAMService.aid
l:14 parameter bytes (2) unknown type List<Byte>

有人可以帮助我吗?提前致谢!

4

2 回答 2

9

尝试使用 byte[] 而不是 List,它对我有用。

interface IMyService {
    int putBytes(String key, in byte[] bytes);
    int getBytes(String key, out byte[] bytes);    
}

AIDL 仅支持原语、String、CharSequence、List、Map。你可以有 List 但永远不能 List

AIDL 文档

于 2014-06-23T02:33:44.207 回答
0

尝试类似这里描述的方法:Transfering ByteArray through Parcel returns NullPointerException

这是如何通过将字节数组包装在 Parcelable 接口中来传输字节数组的示例。我认为你可以对 List 做同样的事情

于 2014-03-21T14:57:40.283 回答