Иногда принятое приглашение от Google Play Games отсутствует.В настоящее время я использую код из многопользовательского руководства Google в реальном времени и добавляю проверку резервного копирования для ручной загрузки списка приглашений, если подсказка отсутствует.Как воспроизвести это поведение:
- Если пользователь какое-то время не использует приложение или в данный момент не выполняет вход
- Пользователь получает и принимает приглашение в реальном времени в многопользовательском режиме вПриложение Google Play Games
- Google Play Games открывает приложение
- Пользователь вошел или автоматически войдет в систему
- onConnected вызывается с использованием используемого GoogleSignInAccount
- Мультиплеер. Отсутствует EXTRA_INVITATION
private void checkForInvitation()
{
if (mSignedInAccount == null) {
return;
}
Games.getGamesClient(context(), mSignedInAccount)
.getActivationHint()
.addOnSuccessListener(
new OnSuccessListener<Bundle>() {
@Override
public void onSuccess(Bundle bundle) {
if (bundle != null) {
Invitation invitation = bundle.getParcelable(Multiplayer.EXTRA_INVITATION);
if (invitation != null) {
//... do something with the invitation
return;
}
}
checkForInvitationBackup();
}
}).addOnFailureListener(createFailureListener("There was a problem getting the activation hint!"));
}
private void checkForInvitationBackup()
{
if (mInvitationsClient == null) return;
mInvitationsClient.loadInvitations().addOnSuccessListener(new OnSuccessListener<AnnotatedData<InvitationBuffer>>() {
@Override
public void onSuccess(AnnotatedData<InvitationBuffer> invitationBufferAnnotatedData)
{
if (invitationBufferAnnotatedData != null) {
InvitationBuffer invitationBuffer = invitationBufferAnnotatedData.get();
if (invitationBuffer != null) {
if (invitationBuffer.getCount() > 0) {
Invitation invitation = invitationBuffer.get(0);
if (invitation != null) {
//... do something with the invitation
}
}
}
}
}
}).addOnFailureListener(createFailureListener("There was a problem getting the invitation list."));
}
Почему пакет пуст, а иногда нет?Как я могу справиться с этим лучше?