0
我试图实现谷歌API登录,但每次我打开应用程序,即使我没有点击登录按钮,在代码中调用按钮单击并抛出异常,如果(result.isSuccess())结果是null,任何人都知道为什么?谷歌Signin API被称为even按钮没有被按下?
public class Login extends FragmentActivity {
private static final int RC_SIGN_IN = 2222;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.build();
mGoogleApiClient = new GoogleApiClient.Builder(getApplicationContext())
.enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();
google_Button = (SignInButton) findViewById(R.id.sign_in_button);
google_Button.setOnClickListener(this);
}
public void onClick(View v) {
switch (v.getId()) {
case R.id.sign_in_button:
Log.d("Result: ","click google");
signIn();
break;
}
}
private void signIn() {
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
startActivityForResult(signInIntent, RC_SIGN_IN);
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == RC_SIGN_IN) {
Log.d("Result: ","google sign in");
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
handleSignInResult(result);
}
}
private void handleSignInResult(GoogleSignInResult result) {
if (result.isSuccess()) {
GoogleSignInAccount acct = result.getSignInAccount();
Log.d("Google token: ",result.getSignInAccount().getEmail());
} else {
Log.d("Google","fail");
}
}