我有三个设备来测试这个。Moto G第1代(4.4.4),Moto G第2代(5.0.1),Nexus 5 (6.0.1)。他们都在同一个无线网络上。下面的代码在Moto G第1代上工作得很好,但在另外两个方面却自动失败。即使使用不同的帐户。
我还在运行Android6.0的模拟器中测试了同样的问题。请帮帮忙。
日志:
D/Google Account: handleSignInResult: false这是我的代码:
MainActivity.java - onCreate
gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.build();
GAPIclient = new GoogleApiClient.Builder(this)
.enableAutoManage(this,this)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();
signInIntent = Auth.GoogleSignInApi.getSignInIntent(GAPIclient);
if (logged_in){
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(signInIntent);
if (result != null){
acct = result.getSignInAccount();
}
}onStart,onStop,signIn,signOut (按下按钮呼叫)
@Override
protected void onStart(){
super.onStart();
GAPIclient.connect();
}
@Override
protected void onStop() {
super.onStop();
if (GAPIclient.isConnected()) {
GAPIclient.disconnect();
}
}
public void signIn(){
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(GAPIclient);
startActivityForResult(signInIntent, RC_SIGN_IN);
}
public void signOut(){
Auth.GoogleSignInApi.signOut(GAPIclient).setResultCallback(new ResultCallback<Status>() {
@Override
public void onResult(Status status) {
}
});
logged_in = false;
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("logged_in", false);
editor.commit();
accountFragment.makeSignIn();
}`onActivityResult
@Override
public 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()){
...更新
在我试图向凭据中添加第二个SHA1键之后,moto上的结果也是一样的。
发布于 2016-07-17 02:15:03
您必须将调试和释放SHA1键都放在Google凭据页面中。
原因:由于某些原因,在调试模式下发送的密钥不一致。显然是基于设备的。谷歌妈妈..。
https://stackoverflow.com/questions/35641218
复制相似问题