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