为什么在尝试发送负载时抛出 STATUS_OUT_OF_ORDER_API_CALL?
Why is STATUS_OUT_OF_ORDER_API_CALL thrown when trying to send a payload?
我正在尝试在连接成功建立后(STATUS_OK
in onConnectionResult()
)从广告商向发现者发送一个字节负载,但我收到 STATUS_OUT_OF_ORDER_API_CALL
错误(错误 8009)。我该如何解决这个问题?
从 status codes 上的文档页面,我知道应该首先调用一个方法,但我不知道那是什么方法。
我已经看到了关于这个问题的 。接受的答案说,如果在断开连接后尝试连接到某人,您可能会收到错误消息。这个问题是当我第一次打开应用程序并尝试发送负载时,我没有在 onConnectionResult()
中收到 API_CONNECTION_FAILED_ALREADY_IN_USE
或 STATUS_ALREADY_ADVERTISING
状态代码。此外,post 与在尝试请求连接时收到错误有关,而在我的情况下,广告商和发现者都连接良好。
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)
免责声明:我在附近工作
这个错误在正常使用中不应该发生...这意味着我们已经忘记了您正在使用的策略。这可能是因为您调用了 stopAllEndpoints 或以某种方式与我们的服务断开连接(注意:与从远程设备断开连接不同)。或者这可能是尝试混合和匹配策略(例如 CLUSTER、STAR、POINT_TO_POINT)的结果。
好消息是,这个特殊的错误条件已在最近的提交中被删除,并将很快推广到设备上。但我仍然对你如何 运行 感到困惑。
我正在尝试在连接成功建立后(STATUS_OK
in onConnectionResult()
)从广告商向发现者发送一个字节负载,但我收到 STATUS_OUT_OF_ORDER_API_CALL
错误(错误 8009)。我该如何解决这个问题?
从 status codes 上的文档页面,我知道应该首先调用一个方法,但我不知道那是什么方法。
我已经看到了关于这个问题的 onConnectionResult()
中收到 API_CONNECTION_FAILED_ALREADY_IN_USE
或 STATUS_ALREADY_ADVERTISING
状态代码。此外,post 与在尝试请求连接时收到错误有关,而在我的情况下,广告商和发现者都连接良好。
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)
免责声明:我在附近工作
这个错误在正常使用中不应该发生...这意味着我们已经忘记了您正在使用的策略。这可能是因为您调用了 stopAllEndpoints 或以某种方式与我们的服务断开连接(注意:与从远程设备断开连接不同)。或者这可能是尝试混合和匹配策略(例如 CLUSTER、STAR、POINT_TO_POINT)的结果。
好消息是,这个特殊的错误条件已在最近的提交中被删除,并将很快推广到设备上。但我仍然对你如何 运行 感到困惑。