我正在尝试在我的Android应用中实施Google登录。
这是我的代码:
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指南,尝试在用户未登录时进行连接应该会导致onConnectionFailed回调。但是,此代码始终显示“CONNECTED”toast,即使我从未授权该应用程序。
我到底误解了什么?我该如何检查用户是否已登录,如果此方法不起作用?
答案 0 :(得分:0)
当onConnected方法调用时,它并不代表User is signed in
。这意味着mGoogleApiCLient已连接。
在此回调之后,应用程序可以对客户端提供的其他方法发出请求。
您可以从此处获取reference。