Соединения Google Nearby - не удается передавать большие байты между двумя устройствами - PullRequest
0 голосов
/ 27 мая 2018

Когда я пытаюсь отправить объект с несколькими изображениями (преобразованный в строку с использованием Base64) в качестве типа STREAM, из метода onPayloadTransferUpdate (), я вижу результат «Сбой» и устройства (тестируются только при подключении 2 устройств)автоматически отключиться после этого.Разве соединения Google Nearby не подходят для отправки больших байтов?

Ответы [ 2 ]

0 голосов
/ 28 мая 2018

1) Вам не нужно кодировать Base64 данные ради соседних подключений - ваш STREAM может иметь необработанные двоичные данные, и это будет прекрасно работать.

2) Насколько великэто данные, которые вы отправляете, и с каким байтовым смещением (вы можете увидеть это в PayloadTransferUpdate , который вы получаете с Status.ERROR) происходит сбой?Похоже, что ваши устройства просто отключаются.

3) Какую стратегию вы используете?

4) Если у вас все еще продолжается обнаружение (т.е.под названием stopDiscovery ()), попробуйте остановить его, а затем отправить полезную нагрузку - обнаружение является тяжелой операцией, которая может затруднить надежное поддержание соединений между устройствами в течение длительных интервалов.

0 голосов
/ 28 мая 2018

Ближайшие соединения должны быть в состоянии справиться с этим.Не существует явного ограничения размера для полезных нагрузок STREAM.

Я бы предложил разделить байты (например, отправлять пару КБ за раз) и посмотреть, поможет ли это.Вы можете попасть в странные ситуации, когда отправляете целые файлы одновременно, потому что он загружает байты в память дважды (один раз в вашем приложении и один раз в ближнем процессе), что может вызвать ошибки нехватки памяти.Binder, уровень межпроцессного взаимодействия в Android, также имеет ограниченный буфер для отправки данных между процессами.

Вы также можете сохранить его как временный файл и отправить как полезную нагрузку FILE, в этом случае мы будем обрабатыватьЧанкинг для вас.

Отказ от ответственности: я работаю над ближайшими подключениями.

...