首页 > 解决方案 > Google Nearby Connections - 如何使用流发送大数据字符串?

问题描述

我试图用流向另一个设备发送一个字符串。当我发送一个包含 60k 个字符的字符串时,它工作正常并且总是成功接收到流。但是当我尝试发送 70k 或更大的字符时,它总是失败并且设备断开连接。

SimpleArrayMap<Long, Payload> incomingPayloads = new SimpleArrayMap<>();

@Override
public void onPayloadReceived(String endpointId, Payload payload) {
    switch (payload.getType()) {
         case Payload.Type.STREAM:
             // Add it to the tracking list so we can update it.
             incomingPayloads.put(payload.getId(), payload);
             break;
    }
}

@Override
public void onPayloadTransferUpdate(String endpointId, PayloadTransferUpdate update) {
    switch (update.getStatus()) {
        case PayloadTransferUpdate.Status.IN_PROGRESS:
            long size = update.getTotalBytes();
            if (size == -1) {
                // This is a stream payload, so we don't need to update anything at this point.
                return;
            }
            break;
        case PayloadTransferUpdate.Status.SUCCESS:
            // SUCCESS always means that we transferred 100%.
            Toast.makeText(this, "Transfer success", Toast.LENGTH_SHORT).show();
            break;
        case PayloadTransferUpdate.Status.FAILURE:
        case PayloadTransferUpdate.Status.CANCELED:
            Toast.makeText(this, "Transfer failed", Toast.LENGTH_SHORT).show();
            break;
        default:
            // Unknown status.
break;
    }

这是我发送有效载荷的方式:

InputStream stream = new ByteArrayInputStream(text.getBytes()); 
Payload payload = Payload.fromStream(stream); 
for (String endPointId : connectedIdList) { 
      connectionsClient 
          .sendPayload( endPointId, payload );
}

标签: androidinputstreamgoogle-nearby

解决方案


推荐阅读