Почему STATUS_OUT_OF_ORDER_API_CALL выбрасывается при попытке отправить полезную нагрузку? - PullRequest
0 голосов
/ 03 апреля 2019

Я пытаюсь отправить полезную нагрузку байтов от рекламодателя обнаружителю после успешного установления соединения (STATUS_OK в onConnectionResult()), но я получаю ошибку STATUS_OUT_OF_ORDER_API_CALL (ошибка 8009).Как это исправить?

Со страницы документации по коды состояния я знаю, что есть метод, который мне следует вызывать первым, но я не знаю, какой это метод.

Я видел «Как устранить ошибку STATUS_OUT_OF_ORDER_API_CALL?» по этой проблеме.В принятом ответе говорится, что вы можете получить ошибку, если попытаетесь подключиться к кому-либо после отключения.Эта проблема возникает, когда я впервые открываю приложение и пытаюсь отправить полезную нагрузку, и я не получаю код состояния API_CONNECTION_FAILED_ALREADY_IN_USE или STATUS_ALREADY_ADVERTISING в onConnectionResult().Кроме того, этот пост был связан с получением ошибки при попытке запросить соединение, в то время как в моей ситуации и рекламодатель, и обнаружитель подключились нормально.

if (isAdvertising) {
    Log.d(TAG, "send: advertising fine");
}

connectionsClient
    .sendPayload(endpointId, payload)
    .addOnFailureListener(e -> Log.w(TAG,
                 "(send payload) onFailure: " + failureMsg, e) )
    .addOnSuccessListener(aVoid -> Log.w(TAG,
                 "(send payload) onSuccess: " + successMsg));

Странная часть - это первая полезная нагрузкаЯ пытаюсь отправить работы, но последующие полезные данные не отправляются.

Сообщение об ошибке:

2019-04-03 19:14:13.535 31128-31128/com.example.adhocdisplay W/ConnectionsActivity: (send payload) onFailure: Failed to send calibration direction payload
    com.google.android.gms.common.api.ApiException: 8009: STATUS_OUT_OF_ORDER_API_CALL
        at com.google.android.gms.internal.nearby.zzby.setFailedResult(Unknown Source:4)
        at com.google.android.gms.internal.nearby.zzba.zzc(Unknown Source:18)
        at com.google.android.gms.internal.nearby.zzea.dispatchTransaction(Unknown Source:7)
        at com.google.android.gms.internal.nearby.zzb.onTransact(Unknown Source:22)
        at android.os.Binder.execTransact(Binder.java:731)

1 Ответ

1 голос
/ 03 апреля 2019

Отказ от ответственности: я работаю на близлежащих

Эта ошибка не должна возникать при обычном использовании ... Это означает, что мы потеряли отслеживание используемой вами стратегии. Это может быть связано с тем, что вы вызвали stopAllEndpoints или каким-то образом отключились от нашего сервиса (примечание: не то же самое, что отключение от удаленного устройства). Или это может быть следствием попытки смешать и сопоставить стратегии (например, CLUSTER, STAR, POINT_TO_POINT).

Хорошая новость заключается в том, что это конкретное состояние ошибки было удалено в недавней отправке и вскоре будет распространено на устройства. Но я все еще немного озадачен тем, как вы столкнулись с этим.

...