Поддерживают ли буферы протокола поля byte[]?

Я пытаюсь обновить код примера BluetoothChat Android, чтобы использовать Protobuf для более структурированного обмена данными. Мне также нужны поля массива byte[] для отправки произвольных данных, например, байтового массива изображения, но при попытке скомпилировать файл.proto я получаю следующую ошибку.

protofiles / bluetoothmessage.proto: 8: 18: ожидаемое имя поля.

Ниже мой файл.proto.

package bluetoothmessage;

option java_package = "com.example.bluetoothexample";
option java_outer_classname = "ProtocolBuffers";

message BTMessage {
    required int32 cmd = 1;
    optional byte[] appData = 2;
}

В нескольких других сообщениях на stackru упоминается, что byte[] может использоваться как файл, и на странице ниже также говорится то же самое.

https://developers.google.com/protocol-buffers/docs/proto

Любая помощь высоко ценится! Спасибо!!

1 ответ

Решение

Из руководства: байты могут содержать произвольную последовательность байтов.

Линия:

optional byte[] appData = 2;

Должен быть изменен на:

optional bytes appData = 2;
Другие вопросы по тегам