RealTime Multiplayer: указать запуск по приглашению
Я считаю, что эта проблема довольно распространена и борется с ней в течение ряда лет. Удивительно, но пока Google ничего не сделал с этим.
Моя игра поддерживает игру через Google Play Service (RealTimeMultiplayer), но она также может играть локально (без сети) или через Bluetooth, где вход в Google не требуется.
Когда игрок получает уведомление, принимает приглашение и приложение запускается, ему нужно указание (дополнительное поле в Intent
возможно) чтобы приложение было активировано по приглашению (будет здорово предоставить GoogleSignInAccount
и, возможно, также Invitation
, учитывая, что оба Parcelable
). Имея такое указание, приложение будет подписывать игрока в Google, принимать приглашение и сразу переходить к игре, в противном случае оно просто покажет экран запуска без запроса на вход. К сожалению, я не вижу такого указания.
Я старался getLastSignedInAccount
а также silentSignIn
в надежде, что поднимет счет, связанный с приглашением. Нету! Как правило, в случае активации по приглашению getLastSignedInAccount
возвращается null
, в то время как silentSignIn
не удается (код, очевидно, 4: SIGN_IN_REQUIRED).
Еще одна отчаянная попытка. Когда приложение запускается программой запуска, оно использует категорию android.intent.category.LAUNCHER
, иначе android.intent.category.INFO
, Однако это не является 100% доказательством, так как, когда приложение запускается из приложения Google Play Store, android.intent.category.INFO
также используется.