我正在尝试在成功建立连接后将广告商的字节有效负载发送给发现者(STATUS_OK
中的onConnectionResult()
),但我收到STATUS_OUT_OF_ORDER_API_CALL
错误(错误8009)。我该如何解决?
从status codes的文档页面,我知道有一种方法我应该首先调用,但我不知道是什么方法。
我在这个问题上看过"How to resolve STATUS_OUT_OF_ORDER_API_CALL error?"。接受的答案是,如果在断开连接后尝试连接某人,则可能会收到错误。这个问题是当我第一次打开应用程序并尝试发送有效负载时,我没有在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)
免责声明:我在附近工作
在正常使用中不应出现此错误...这意味着我们已经忘记了您正在使用的策略。这可能是因为您调用了stopAllEndpoints或以某种方式与我们的服务断开连接(注意:与远程设备断开连接不一样)。或者它可能是尝试混合和匹配策略的结果(例如,CLUSTER,STAR,POINT_TO_POINT)。
好消息是,这个特殊的错误情况在最近的提交中被删除了,并且很快将推出到设备。但是我仍然对你如何遇到它感到有点难过。