【问题标题】:How can Discoverer get the acknowledgement from the Advertiser when the data is transferred completely using Google's Nearby Connections API?当使用 Google 的 Nearby Connections API 完全传输数据时,Discoverer 如何获得广告商的确认?
【发布时间】:2020-07-28 12:43:50
【问题描述】:

我正在开发一个应用程序,我的要求是将一些文件从一台设备传输到另一台设备。为此,我正在使用 Google 的 Nearby Connections API。根据应用要求,当广告主(Receiver)收到完整的数据后,我需要向Discoverer(发送者)发送确认,以便对其执行一些操作。那么有人可以指导我如何完成它吗?

【问题讨论】:

    标签: android google-nearby google-nearby-connections


    【解决方案1】:

    如果您只想在广告商收到您发送的数据时收到通知,您可以使用回调 onPayloadTransferUpdate,它的作用类似于有关有效负载传输的通知/确认。你可以这样做:

    private PayloadCallback payloadCallback =
                new PayloadCallback() {
                    @Override
                    public void onPayloadReceived(@NonNull String endpointId, @NonNull Payload payload) {
    
                    }
    
                    @Override
                    public void onPayloadTransferUpdate(@NonNull String endpointId, @NonNull PayloadTransferUpdate payloadTransferUpdate) {
                        if (payloadTransferUpdate.getStatus() == PayloadTransferUpdate.Status.SUCCESS) {
                            // handle payload transfer success event - ACK
                        } else if (payloadTransferUpdate.getStatus() == PayloadTransferUpdate.Status.FAILURE) {
                            // handle payload transfer fail event - NAK
                        } else {
                            // handle other events like CANCELED and IN_PROGRESS
                        }
                    }
                };
    

    【讨论】:

    • 我之前也尝试过,但是我将多个文件从一台设备发送到另一台设备,并且 onPayloadTransferUpdate() 被多次调用。我想在接收者收到我猜附近连接 API 不支持的所有文件时通知发送者。
    • 就我而言,附近的连接不支持。您可以做的是计算您发送了多少条消息,以及您触发了多少条带有 SUCCESS 状态的 onPayloadTransferUpdate 消息。当这 2 个计数器值相等时,您可以通知发件人广告商已收到所有文件。
    • @Catalin Mares,抱歉回复晚了,我使用了计数逻辑,它目前在发送方有效,我可以进一步处理。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多