Почему я не могу войти в Google Play игры - PullRequest
0 голосов
/ 27 декабря 2018

Я пытался 1 день назад войти в Google Play, но никогда, кроме случаев, когда я получил сообщение ниже.

Logcat

I/salahtaha: com.google.android.gms.common.api.ApiException: 4: 4: 

Манифест

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.salah250.test.test">

    <uses-permission android:name="android.permission.INTERNET"/>

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Java-код

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    private void signInSilently() {
        GoogleSignInClient signInClient = GoogleSignIn.getClient(this,
                GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN);
        signInClient.silentSignIn().addOnCompleteListener(this,
                new OnCompleteListener<GoogleSignInAccount>() {
                    @Override
                    public void onComplete(@NonNull Task<GoogleSignInAccount> task) {
                        if (task.isSuccessful()) {
                            GoogleSignInAccount signedInAccount = task.getResult();
                            Toast.makeText(MainActivity.this, "a", Toast.LENGTH_SHORT).show();
                        } else {
                            Log.i("salahtaha",String.valueOf(task.getException()));
                        }
                    }
                });
    }

    @Override
    protected void onResume() {
        super.onResume();
        signInSilently();
    }

}

Я добавил игру в игровую приставку Google, используя игровые сервисы, и она связана с проектом Firebase.

Примечание: SHA1 в моем приложении идентично в моей базе

1 Ответ

0 голосов
/ 27 декабря 2018

На основе CommonStatusCodes из Google API для Android

Если посмотреть на исключение API, предоставляется код состояния 4, который связан со следующей информацией изДокументация Google API для Android.

Клиент попытался подключиться к службе, но пользователь не вошел в систему. Клиент может продолжить работу без использования API.В качестве альтернативы, если hasResolution () возвращает true, клиент может вызвать startResolutionForResult (Activity, int), чтобы предложить пользователю выполнить вход. После того, как действие входа возвращается с RESULT_OK, дальнейшие попытки должны быть успешными.

Кроме того,метод, который вы вызываете SignInSliently, я также нашел следующую информацию:

  • (void) signInSilently
    Попытки войти в ранее аутентифицированного пользователябез взаимодействия.
    Делегат будет вызван в конце этого процесса с указанием успеха или неудачи.

Поэтому я считаю, что вы пытаетесь войти, не имея каких-либо предыдущихзапись авторизованного входа. Чтобы использовать signInSilently, вы должны вручную войти в сервис.

Кредит noktigula для предоставления источника этой документации в APIException question , что приводит к той же ошибке в этом вопросе.

...