谷歌登录android 5.0(棒棒糖)或更高版本的棉花糖失败,但kitkat handleSignInResult:错误
谷歌登录android谷歌登录android 5.0(棒棒糖)或更高版本的棉花糖失败,但kitkat handleSignInResult:错误,android,google-signin,Android,Google Signin,谷歌登录android5.0(棒棒糖)或更高版本的Marshmallow失败,但kitkat上的没有,kitkat正常工作。。我尝试了一些设备和模拟器,但始终无法登录 应用程序只显示来自snackbar的消息,因为handleSignInResult:false 我怎样才能解决这个问题 这是我的密码 package com.emergency.e_place; import android.content.Intent; import android.os.Bundle; import and
5.0(棒棒糖)
或更高版本的Marshmallow
失败,但kitkat上的没有,kitkat正常工作。。我尝试了一些设备和模拟器,但始终无法登录
应用程序只显示来自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();
}
}
这是因为我没有注册OAuth2.0客户端ID
转到>选择您的项目菜单凭据
然后
单击创建凭据
OAuth客户端ID
在应用程序类型中选择android
输入名称
使用以下命令输入SSA-1:keytool-exportcert-keystore路径以调试或生产keystore-list-v
您是否正在请求在棉花糖或更高版本的设备上运行时权限。不,我无法登录android棒棒糖或更高版本发布问题之前,请进行彻底搜索。。
mGoogleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();