Android:使用AIDL传输字节数组

时间:2012-11-30 07:07:20

标签: android aidl

我需要在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>

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

2 个答案:

答案 0 :(得分:8)

尝试使用byte []而不是List,它适用于我。

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

AIDL仅支持基元,String,CharSequence,List,Map。您可以拥有列表但不能列出

AIDL doc

答案 1 :(得分:0)

尝试类似于此处所述的内容:Transfering ByteArray through Parcel returns NullPointerException

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

做同样的事情