2017-08-04 26 views
0

私のアプリケーションはGoogle経由でログインする必要があります。私はfirebaseからチュートリアルを開きました(しかし、最初にあなたはGoogle自身を設定する必要があります)。指示に書かれていました。ただし、動作しません。なぜresult.isSuccess()が常にfalseであるのか。したがって、私はアカウント情報を取得することはできません。Googleログインでアカウント情報を取得できません

LogCat:

08-04 08:32:28.128 1948 1948 D  AutoManageHelper        starting AutoManage for client 0 false false 
08-04 08:32:28.136 1948 1948 D  AutoManageHelper        onStart true {[email protected]} 
08-04 08:32:28.296 1948 1974 E  GED           Failed to get GED Log Buf, err(0) 
08-04 08:32:35.293 1948 1948 D  Tag           handleSignInResult:false 

コード:あなたのAPI consoleから "グーグルPlayゲームサービス" APIを有効にした場合は、最初に確認する必要があり

import android.content.*; 
import android.os.*; 
import android.support.v7.app.*; 
import android.view.*; 
import android.view.View.*; 
import com.google.android.gms.auth.api.*; 
import com.google.android.gms.auth.api.signin.*; 
import com.google.android.gms.common.api.*; 
import android.util.*; 
import android.support.v4.app.*; 
import com.google.android.gms.common.*; 
import android.widget.*; 

public class GoogleSigInActivity extends FragmentActivity implements GoogleApiClient.OnConnectionFailedListener 
{ 

    GoogleApiClient mGoogleApiClient; 
    private static final int RC_SIGN_IN = 9001; 
    private String TAG = "Tag"; 
    TextView mStatusTextView; 
    @Override 
    public void onConnectionFailed(ConnectionResult p1) 
    { 
     // TODO: Implement this method 
    } 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_gogle_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, this). 
      addApi(Auth.GOOGLE_SIGN_IN_API, gso). 
      build(); 

     mStatusTextView = (TextView) findViewById(R.id.activitygoglesigninTextView1); 

     findViewById(R.id.sign_in_button).setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View p1) 
       { 
        switch (p1.getId()) 
        { 
         case R.id.sign_in_button : 
          signIn(); 
          break; 
        } 
       } 
      }); 
    } 

    private void signIn() 
    { 

     Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient); 
     startActivityForResult(signInIntent, RC_SIGN_IN); 
    } 

    @Override 
    public 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(TAG, "handleSignInResult:" + result.isSuccess()); 


     if (result.isSuccess()) 
     { 
      // Signed in successfully, show authenticated UI. 
      GoogleSignInAccount acct = result.getSignInAccount(); 
      mStatusTextView.setText("work " + acct.getDisplayName()); 
     } 
     else 
     { 
      // Signed out, show unauthenticated UI. 
      mStatusTextView.setText("not work"); 
     } 
    } 


} 

答えて

0

。これにより、あなたのアプリは認証サービスを使用することができます。 私の場合、Googleのサインインはアプリケーションの署名付きAPKでのみ動作し、デバッグビルドでは動作しませんでした。

+0

ありがとう、私はそれを試してみる) –

関連する問題