Я начинаю работать с 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)
.Как мне это исправить?