public class MainActivity extends AppCompatActivity implements GoogleApiClient.OnConnectionFailedListener,View.OnClickListener {
private SignInButton signInButton;
private GoogleApiClient googleApiClient;
public static final String TAG="MainActivity";
private static final int RC_SIGN_IN=1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GoogleSignInOptions googleSignInOptions=new GoogleSignInOptions
.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).requestEmail().build();
googleApiClient=new GoogleApiClient.Builder(this).enableAutoManage(this,this)
.addApi(Auth.GOOGLE_SIGN_IN_API,googleSignInOptions).build();
signInButton=(SignInButton)findViewById(R.id.mainactivitygooglesigninbutton);
signInButton.setOnClickListener(this);
OptionalPendingResult<GoogleSignInResult> googleSignInResultOptionalPendingResult = Auth.GoogleSignInApi.silentSignIn(googleApiClient);
if(googleSignInResultOptionalPendingResult.isDone()){
Intent intent=new Intent(this,ContactsActivity.class);
startActivity(intent);
finish();
}
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.mainactivitygooglesigninbutton:
signIn();
break;
}
}
private void signIn() {
Intent intent=Auth.GoogleSignInApi.getSignInIntent(googleApiClient);
startActivityForResult(intent,RC_SIGN_IN);
}
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
Toast.makeText(getApplicationContext(), "Login Failed", Toast.LENGTH_SHORT).show();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==RC_SIGN_IN){
GoogleSignInResult result=Auth.GoogleSignInApi.getSignInResultFromIntent(data);
handleSignInResult(result);
}
}
private void handleSignInResult(GoogleSignInResult result) {
if(result.isSuccess()){
GoogleSignInAccount account=result.getSignInAccount();
Intent intent=new Intent(this,ContactsActivity.class);
startActivity(intent);
finish();
}
}
}
成功时,我的应用中的完整签名不会移至“通讯录活动”。我使用了互联网权限,并且所有活动都在Manifest文件中注册。即使在Android Monitor中我也没有收到任何错误,也没有我的应用程序崩溃。
我在手机中登录了Google和Google Plus帐户。点击登录按钮,它会显示选择帐户的选项,但之后没有任何反应。我做错了什么?