谷歌登錄失敗在android或以上Marshmallow
但no on kitkat
,在kitkat正常工作..我嘗試了一些設備和模擬器但始終無法登錄谷歌登錄失敗在Android 5.0(棒棒糖)或以上棉花糖,但在kitkat沒有handleSignInResult:假
應用程序只顯示從snackbar
因爲handleSignInResult:false
我怎麼能解決這個消息?
這是我的代碼
package com.emergency.e_place;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
import com.emergency.e_place.Util.SessionManager;
import com.google.android.gms.auth.api.Auth;
import com.google.android.gms.auth.api.signin.GoogleSignInAccount;
import com.google.android.gms.auth.api.signin.GoogleSignInOptions;
import com.google.android.gms.auth.api.signin.GoogleSignInResult;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.SignInButton;
import com.google.android.gms.common.api.GoogleApiClient;
public class LoginActivity extends AppCompatActivity implements GoogleApiClient.OnConnectionFailedListener {
SignInButton signInButton;
GoogleApiClient mGoogleApiClient;
private final int RC_SIGN_IN = 100;
SessionManager session;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
setSession();
setGoogleSignInAccount();
declareWidget();
setClickWidget();
}
private void setSession() {
session = new SessionManager(LoginActivity.this);
}
private void setButtonGooglesignIn() {
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
startActivityForResult(signInIntent, RC_SIGN_IN);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...);
if (requestCode == RC_SIGN_IN) {
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
handleSignInResult(result);
}
}
private void handleSignInResult(GoogleSignInResult result) {
Log.d("Hasil", "handleSignInResult:" + result.isSuccess());
Log.d("Hasil", "handleSignInResult:" + result.toString());
if (result.isSuccess()) {
// Signed in successfully, show authenticated UI.
GoogleSignInAccount acct = result.getSignInAccount();
String nama = acct.getDisplayName();
String email = acct.getEmail();
String id = acct.getId();
String foto = String.valueOf(acct.getPhotoUrl());
session.createLoginSession(id,nama,email,foto);
Intent i = new Intent(getApplicationContext(),MainActivity.class);
startActivity(i);
finish();
} else {
Snackbar.make(((ViewGroup) findViewById(android.R.id.content)).getChildAt(0), "GAGAL LOGIN", Snackbar.LENGTH_SHORT).show();
}
}
private void setGoogleSignInAccount() {
// Configure sign-in to request the user's ID, email address, and basic profile. ID and basic profile are included in DEFAULT_SIGN_IN.
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.build();
// Build a GoogleApiClient with access to the Google Sign-In API and the options specified by gso.
mGoogleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();
}
private void setClickWidget() {
signInButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setButtonGooglesignIn();
}
});
}
private void declareWidget() {
signInButton = (SignInButton) findViewById(R.id.signin_login_signin);
}
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
Toast.makeText(getApplicationContext(),connectionResult.getErrorMessage(),Toast.LENGTH_LONG).show();
}
}
代碼,你要求運行許可,棉花糖或設備。 – tk1505
不,只是我不能登錄android棒棒糖或以上 –
在發佈問題之前做一個徹底的搜索.. – tk1505