Как Discoverer может получить подтверждение от рекламодателя, если данные полностью передаются с использованием Google Nearby Connections API?

Я работаю над приложением, где мне нужно передать некоторые файлы с одного устройства на другое. Для этого я использую Google Nearby Connections API. В соответствии с требованием приложения, когда рекламодатель (получатель) получает полные данные, мне нужно отправить подтверждение отправителю (отправителю), чтобы выполнить с ним некоторые операции. Так может ли кто-нибудь подсказать мне, как это можно сделать?


person Sagar Mehta    schedule 28.07.2020    source источник


Ответы (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
                    }
                }
            };
person Catalin Mares    schedule 29.07.2020
comment
Я пробовал это и раньше, но я отправляю несколько файлов с одного устройства на другое, и onPayloadTransferUpdate() вызывается несколько раз. Я хочу уведомить отправителя, когда получатель получит все файлы, которые, как я полагаю, не поддерживаются Nearby Connections API. - person Sagar Mehta; 29.07.2020
comment
Насколько я понимаю, это не поддерживается Nearby Connections. Что вы можете сделать, так это подсчитать, сколько сообщений вы отправляете и сколько сообщений вы инициируете onPayloadTransferUpdate со статусом SUCCESS. Когда эти два значения счетчика равны, вы можете уведомить отправителя о том, что все файлы были получены рекламодателем. - person Catalin Mares; 29.07.2020
comment
@ Catalin Mares, извините за поздний ответ, я использовал логику подсчета, и в настоящее время она работает на стороне отправителя, и я могу продолжить ее. - person Sagar Mehta; 14.08.2020