2015-05-16 3 views
0

Я пытаюсь внедрить логин Google+ в своем приложении, но это не сработает.Службы Google Play недоступны при попытке войти в систему с помощью Google+

Каждый раз, когда я нахожу вход в систему, onConnectionFailed вызывается сразу после выбора учетной записи.

Может кто-нибудь, пожалуйста, дайте мне знать, что случилось?

public class LoginActivity extends ActionBarActivity 
    implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, View.OnClickListener{ 

/* 
Variables 
*/ 

/* Request code used to invoke sign in user interactions. */ 
private static final int RC_SIGN_IN = 0; 

/* Client used to interact with Google APIs. */ 
private GoogleApiClient mGoogleApiClient; 

/* A flag indicating that a PendingIntent is in progress and prevents 
* us from starting further intents. 
*/ 
private boolean mIntentInProgress; 

/* 
* True if the sign-in button was clicked. When true, we know to resolve all 
* issues preventing sign-in without waiting. 
*/ 
private boolean mSignInClicked; 

/* 
Lifecycle 
*/ 

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

    mGoogleApiClient = new GoogleApiClient.Builder(this) 
      .addConnectionCallbacks(this) 
      .addOnConnectionFailedListener(this) 
      .addApi(Plus.API, Plus.PlusOptions.builder().build()) 
      .addScope(Plus.SCOPE_PLUS_LOGIN) 
      .build(); 

    // Sign in button click listener 
    findViewById(R.id.googleSignInButton).setOnClickListener(this); 
} 

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

    mGoogleApiClient.connect(); 
} 

@Override 
protected void onStop() { 
    super.onStop(); 

    if (mGoogleApiClient.isConnected()) { 
     mGoogleApiClient.disconnect(); 
    } 
} 

/* 
Callbacks 
*/ 

@Override 
public void onClick(View v) { 
    if (v.getId() == R.id.googleSignInButton && !mGoogleApiClient.isConnecting()) { 
     mSignInClicked = true; 
     mGoogleApiClient.connect(); 
    } 
} 

@Override 
public void onConnectionFailed(ConnectionResult connectionResult) { 
    Log.i("TAG", "onConnectionFailed"); 
    if (!mIntentInProgress) { 
     if (mSignInClicked && connectionResult.hasResolution()) { 
      // The user has already clicked 'sign-in' so we attempt to resolve all 
      // errors until the user is signed in, or they cancel. 
      try { 
       connectionResult.startResolutionForResult(this, RC_SIGN_IN); 
       mIntentInProgress = true; 
      } catch (IntentSender.SendIntentException e) { 
       // The intent was canceled before it was sent. Return to the default 
       // state and attempt to connect to get an updated ConnectionResult. 
       mIntentInProgress = false; 
       mGoogleApiClient.connect(); 
      } 
     } 
    } 
} 

@Override 
public void onConnected(Bundle bundle) { 
    Log.i("TAG", "onConnected"); 

    mSignInClicked = false; 
    Toast.makeText(this, "User is connected!", Toast.LENGTH_LONG).show(); 
} 

@Override 
public void onConnectionSuspended(int i) { 
    Log.i("TAG", "onConnectionSuspended"); 
    mGoogleApiClient.connect(); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    if (requestCode == RC_SIGN_IN) { 
     if (resultCode != RESULT_OK) { 
      mSignInClicked = false; 
     } 

     mIntentInProgress = false; 

     if (!mGoogleApiClient.isConnected()) { 
      mGoogleApiClient.reconnect(); 
     } 
    } 
} 
} 

Я даже загрузил официальный образец Google для входа в систему и получил ту же ошибку. Он просто не войдет и не подключится.

У меня есть хорошее соединение (даже Wi-Fi), и я попробовал его на нескольких телефонах.

+0

может возникнуть проблема с ключом, который вы создали. Попробуйте создать новый ключ, а затем повторите попытку. –

+0

Да! Мне пришлось сгенерировать ключ снова с помощью debug.keystore. Я сделал это раньше с моим официальным хранилищем ключей. Спасибо! Не стесняйтесь публиковать ответ, чтобы я мог его принять :) – Guy

+0

Stacktrace пожалуйста. :) – theapache64

ответ

0

Это может быть проблема с ключом, который вы используете. Перейти к консоли вашего Google API Попытается Созданием нового Cient идентификатора с SHA1, полученных из debug.keystore и попробуйте Войти again.I'm уверен, что это поможет решить проблему.

Смежные вопросы