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

List の代わりに byte[] を使用してみてください。

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 インターフェイスでラップして転送する方法の例です。リストでも同じことができると思います

于 2014-03-21T14:57:40.283 に答える