【发布时间】:2016-07-05 15:40:42
【问题描述】:
我正在尝试在我的 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 回调。但是,此代码始终显示“已连接”toast,即使我从未授权该应用程序。
我到底误会了什么?如果此方法不起作用,我应该如何检查用户是否已登录?
【问题讨论】:
标签: android authentication google-authentication