Поддерживают ли буферы протокола поля 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;