Файл, отправленный рядом, не открывается - PullRequest
0 голосов
/ 31 мая 2018

Я начинаю работать с Nearby и отправляю файл через поток.На стороне отправителя я вижу, что файл отправляется, а на стороне получателя я вижу и события onPayloadReceived, и события 2 onPayloadTransferUpdate, второе со статусом 1. Как только я получаю это событие со статусом 1, язапустите следующий код:

Payload payload = payloads.remove(id);
try {
    Payload.File payloadFile = payload.asFile();
    Reader reader;
    File file = payloadFile.asJavaFile();
    if (file==null)
        reader = new FileReader(payloadFile.asParcelFileDescriptor().getFileDescriptor());
    else
        reader = new FileReader(file);
    StringBuilder builder = new StringBuilder();
    char[] buff = new char[1024];
    do
    {
        int count = reader.read(buff);
        if (count<=0)
            break;
        builder.append(buff, 0, count);
    }while(true);

    receivedData.setText(builder);
}
catch (Exception exn){Log.d(TAG, "Exception thrown while receiving",exn);}

В результате file будет нулевым, а команда read выдает IOException с сообщением read failed: EBADF (Bad file number).Как мне это исправить?

1 Ответ

0 голосов
/ 01 июня 2018

Не могли бы вы показать код, который соответствует "отправке файла через поток"?

Я спрашиваю, потому что STREAM и FILE - это два разных типа полезной нагрузки, поэтому, если вы отправляете как STREAM (независимо от того, было ли содержимое STREAM получено из файла), вы получите как STREAM.

...