2016-07-05 4 views
0

AndroidアプリでGoogle Sign-Inを実装しようとしています。ユーザーがonConnectionFailedコールバックを生じるはずであるで署名されていない場合に接続しようとし、GoogleApiClientはアカウントを提供していないのになぜ正常に接続しますか?

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

    private GoogleSignInOptions gso; 
    private GoogleApiClient mGoogleApiClient; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_sign_in); 
     gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
       .requestProfile() 
       .requestEmail() 
       .build(); 
     mGoogleApiClient = new GoogleApiClient.Builder(this) 
       .addOnConnectionFailedListener(this) 
       .addConnectionCallbacks(this) 
       .addApi(Auth.GOOGLE_SIGN_IN_API, gso) 
       .build(); 
     mGoogleApiClient.connect(); 

    } 

    @Override 
    public void onConnected(Bundle bundle) { 
     Toast.makeText(this, "CONNECTED", Toast.LENGTH_SHORT).show(); 
    } 

    @Override 
    public void onConnectionSuspended(int i) { 
    } 

    @Override 
    public void onConnectionFailed(ConnectionResult connectionResult) { 
      Toast.makeText(this, "FAILED", Toast.LENGTH_SHORT).show(); 
    } 

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

} 

thisガイドによると:

は、ここに私のコードです。しかし、私は決してアプリケーションを認証しなくても、このコードは常に "CONNECTED"トーストを表示します。

私は正確に何を誤解していますか?この方法がうまくいかない場合、ユーザーがサインインしているかどうかを確認するにはどうすればよいですか?

答えて

0

onConnectedメソッドを呼び出すと、User is signed inを意味するものではありません。これは、mGoogleApiCLientが接続されていることを意味します。

このコールバックの後、アプリケーションはクライアントが提供する他のメソッドに対して要求を行うことができます。

ここからreferenceを受け取ることができます。

+0

さて、ユーザーがログインしているかどうかを確認するにはどうすればよいですか? – user2649762

関連する問題