2016-11-15 3 views
1

У меня есть простая игра, с помощью кнопки полноразмерного она показывает наивысший балл игрока, прежде чем отправлять на этот вопрос, я убедился о следующем:SIGN_IN_REQUIRED - Google Игры

  1. SHA1 Fingerprint.
  2. API-интерфейсы включены.
  3. Правильный пакет.
  4. Правильный идентификатор приложения.
  5. Добавлены и добавлены библиотеки покупок Google Play.
  6. Файл конфигурации импортирован.
  7. Отчеты Admob, Analytics и crash работают нормально.
  8. GET ACCOUNTS уже добавлен, все тот же.

Моя проблема, нет счета Chooser/сборщика не показывает, и это даже не вход, им получить следующее сообщение об ошибке:

ConnectionResult{statusCode=SIGN_IN_REQUIRED, resolution=PendingIntent{fbd982b: [email protected]}, message=null 

Код:

public class MainActivity extends AppCompatActivity implements 
    GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener { 

ImageButton mLeaderBoard; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.activity_welcome); 
    mLeaderBoard = (ImageButton) findViewById(R.id.leaderboard); 
    mLeaderBoard.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      ShowBoard(); 
     } 
    }); 

    mGoogleApiClient = new GoogleApiClient.Builder(this) 
      .addConnectionCallbacks(this) 
      .addOnConnectionFailedListener(this) 
      .addApi(Games.API) 
      .addScope(Games.SCOPE_GAMES) 
      .addScope(SCOPE_PLUS_PROFILE) 
      .build(); 
} 

@Override 
protected void onStart() { 
    super.onStart(); 
    mGoogleApiClient.connect(); 

} 

@Override 
protected void onStop() { 
    super.onStop(); 
    if (mGoogleApiClient.isConnected()) { 
     mGoogleApiClient.disconnect(); 
    } 
} 

private void ShowBoard() { 
    if(!isSignedIn()){ 
     mGoogleApiClient.connect(); 
    } 
    mGoogleApiClient.connect(); 
    if(isSignedIn()) 
    startActivityForResult(Games.Leaderboards.getLeaderboardIntent(mGoogleApiClient, 
      LEADERBOARD_TOP_SCORE_ID), 1); 
    else 
     Toast.makeText(this, getResources().getString(R.string.leaderboard_not_available), Toast.LENGTH_LONG).show(); 

} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    // Check which request we're responding to 
    if (requestCode == 1) { 

     Log.i("GoogleSignInApi","Result: " + resultCode + " - Data: " + data.getData()); 
     if (resultCode == RESULT_OK) { 

     } 
    } 
} 



@Override 
public void onConnected(Bundle bundle) { 

} 

@Override 
public void onConnectionSuspended(int i) { 
    mGoogleApiClient.connect(); 
} 

@Override 
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) { 
    Log.i("GoogleSignInApi","Problem: " + connectionResult.getErrorMessage() + " - Test: " + connectionResult.toString()); 
} 

} 
+0

Игра уже опубликована, и все прошло как 5 часов. – Jaeger

+2

Решено, проверьте это: http://stackoverflow.com/a/27787091/5646429 – Jaeger

ответ

1

AFAIK, вы должен иметь SCOPE_PLUS_PROFILE - OAuth2.0 область для доступа к данным профиля пользователя. Вам необходимо включить API Google+ и создать учетные данные с помощью SHA1 и вашего пакета. Oauth Consent с электронной почтой и названием продукта.

Убедитесь, что у вас есть разрешение и все пакеты, необходимые, пример ниже:

applicationId in tag <application> 
package name in AndroidManifest.xml 
package name in Credentials in Google Developer Console 

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

Кроме того, вам нужно позвонить onActivityResult. это необходимо для обслуживания всех возможных кодов ошибок, когда клиент не может подключиться к сервисам Google Play.

+0

Google+ Api уже включен, в моей консоли Google Dev есть только одна запись (OAuth2), детали (SHA1 fingerprint + Package) верны , добавили разрешение и добавили Plus Profile, все еще ту же проблему, проверьте обновленный код. – Jaeger