1
我有3個設備,我測試這個。 Moto G 1st Gen(4.4.4),Moto G 2nd Gen(5.0.1),Nexus 5(6.0.1)。他們都在同一個wifi網絡上。以下代碼完美適用於Moto G 1st Gen,但在另外兩種情況下會自動失效。即使使用不同的帳戶。谷歌登錄自動失敗
我也在運行android 6.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,簽到,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();
}`
onAct ivityResult
@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()){
...
UPDATE
同樣的結果現在Moto G機種後,我試圖第二SHA1鍵添加到憑據。
請格式化代碼。這是很多代碼,請寫一個縮小版本的問題。 – Tdorno
完成。我希望這是好的 –
@ CyberGeek.exe我有同樣的問題。你已經知道答案了嗎? –