2016-08-28 1 views
0

본 가이드 (https://developers.google.com/identity/sign-in/android/start-integrating)를 통해 Google SignIn을 통합했습니다.Android에서 Google 로그인 - 로그인하지 않았기 때문에 로그 아웃하지 않습니다.

이 같은 설정을 완료 한 다음 코드를 작품에

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
      .requestEmail() 
      .requestIdToken(AppActivity.this.getResources().getString(R.string.server_client_id)) 
      .build(); 

GoogleSignIn.googleApiClient = new GoogleApiClient.Builder(this) 
      .addOnConnectionFailedListener(this) 
      .addConnectionCallbacks(this) 
      .addApi(Auth.GOOGLE_SIGN_IN_API, gso) 
      .build(); 

로그인 완벽하게 잘 작동 다음 로그인의-오버레이가 나타납니다

public static void loginGoogleSDK() 
{ 
    Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(googleApiClient); 
    GameApplication.getActivity().startActivityForResult(signInIntent, RC_SIGN_IN); 
} 

, 나는 계정 및 로그를 선택 모든 것이 잘 작동합니다.

이 가이드 (https://developers.google.com/identity/sign-in/android/disconnect) 뒤에 다음 코드로 로그 아웃하려고 시도하지만 항상 오류 메시지가 표시됩니다. 으로 로그 아웃 할 수 없습니다.

Auth.GoogleSignInApi.signOut(googleApiClient).setResultCallback(
     new ResultCallback<Status>() { 
      @Override 
      public void onResult(Status status) { 
       System.out.println("Google SDK Sign Out Access Status:" + status); 
      } 
     }); 

이상한 부분은 다시 로그인하면 자동으로 성공하고 계정을 다시 선택할 수 없다는 것입니다. 따라서 로그인은 여전히 ​​활성화되어 있으며 로그 아웃 할 수 없습니다. 를 포함한 enableAutoManage documentation

+0

[로그인 추가 가이드] (https://developers.google.com/identity/sign-in/android/sign-in)는 'enableAutoManage'를 사용합니다. 즉, 수동으로'googleApiClient '를 호출 할 필요가 없음을 의미합니다. connect()'- 당신이'enableAutoManage'를 사용하지 않는 것처럼 어디에서 호출합니까? – ianhanniballake

+0

아, 네. 나는 Cocos2d-x를 사용하고 있으며 Fragment Activity를 사용하지 않는다. 자폐증없이 일하게하려면 어떻게해야합니까? 어디에서 정보를 찾았습니까? 나는 아무 것도 그것을 보지 못했다. – keyboard

답변

1

:

onStart()에 클라이언트를 연결하고 onStop()에 연결이 끊어지지 라이브러리 FragmentActivity 자동 라이프 사이클을 관리 할 수 ​​있습니다.

사용자가 복구 할 수있는 오류를 적절하게 처리하고 ConnectionResult에 해상도가없는 경우 unresolvedConnectionFailedListener에서 onConnectionFailed(ConnectionResult)을 호출합니다. 이것은 GoogleApiClient을 사용하는 보일러 플레이트의 대부분을 제거합니다. Add Sign In guide 같은 enableAutoManage()을 포함하지 않음으로써

GoogleApiClient 결코 실제로 발생한 오류의 원인, 연결, 않습니다.

enableAutoManage()을 사용하지 않으려면 ConnectionCallbacksOnConnectionFailedListener에 대한 구현을 제공하는 방법을 포함하여 manually manage connections의 안내를 따르세요.

+0

수정되었습니다. 고맙습니다. 문서에서이 기사를 찾지 못했습니다. 그것을 따라 모든 것을 고쳤습니다. 실제로 autoManage를 사용할 수 없어 수동 방식으로 구현했습니다. – keyboard

관련 문제