android - 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 );
}
解决方案
推荐阅读
- reactjs - 无法验证 azure App 服务并获取 spfx 反应解决方案中的数据
- php - Laravel:使用 Elequent 的条件选择列
- cocoa - 我的 NSScrollView 没有滚动我的 NSTextView(文档)
- c# - OpenIdDict 忽略 AuthenticationProperties
- javascript - 从每个 iframe 中提取 src 并将其插入 div
- user-interface - 当键盘出现在 Flutter 中时向上移动文本字段
- php - 我想使用php将每隔一个星期三放入一个数组中
- javascript - 插件 Javascript(可能是 ajax)在我的 wordpress 自定义主题中不起作用
- java - 如何通过多个值过滤文件中的行?
- python - Power BI 数据框表可视化