2017-07-20 6 views
-1

Ich erstelle eine Anwendung, in der Benutzer sich registrieren und mit den registrierten Details anmelden können. Was ich tun muss, ist, dass ich Google anmelden Schaltfläche hinzufügen möchte. Wenn Nutzer auf diesen Button klicken, können sie sich mit ihrem Google-Konto anmelden. Ich habe viel darüber gesucht, aber ich habe den Code von Google innerhalb der Aktivität anmelden. einige, was wie dieseWie Sie Google in unserer App anmelden

public class MainActivity extends AppCompatActivity implements View.OnClickListener,GoogleApiClient.OnConnectionFailedListener { 

private LinearLayout Prof_Section; 
private Button SignOut; 
private SignInButton SignIn; 
private TextView Name, Email; 
private ImageView Prof_Pic; 
private GoogleApiClient googleApiClient; 
private static final int REQ_CODE = 9001; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Prof_Section = (LinearLayout) findViewById(R.id.prof_section); 
    SignOut = (Button) findViewById(R.id.bn_logout); 
    SignIn = (SignInButton) findViewById(R.id.bn_login); 
    Name = (TextView) findViewById(R.id.name); 
    Email = (TextView) findViewById(R.id.email); 
    Prof_Pic = (ImageView) findViewById(R.id.prof_pic); 
    SignIn.setOnClickListener(this); 
    SignOut.setOnClickListener(this); 
    Prof_Section.setVisibility(View.GONE); 
    GoogleSignInOptions signInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).requestEmail().build(); 
    googleApiClient = new GoogleApiClient.Builder(this).enableAutoManage(this,this).addApi(Auth.GOOGLE_SIGN_IN_API, signInOptions).build(); 

} 

@Override 
public void onClick(View v) { 

    switch (v.getId()) { 
     case R.id.bn_login: 
      SignIn(); 
      break; 
     case R.id.bn_logout: 
      SignOut(); 
      break; 
    } 
} 

@Override 
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) { 

} 

private void SignIn() { 
    Intent Intent = Auth.GoogleSignInApi.getSignInIntent(googleApiClient); 
    startActivityForResult(Intent, REQ_CODE); 

} 

private void SignOut() { 
    Auth.GoogleSignInApi.signOut(googleApiClient).setResultCallback(new ResultCallback<Status>() { 
     @Override 
     public void onResult(@NonNull Status status) { 
      updateUI(false); 
     } 
    }); 
} 

private void handleResult(GoogleSignInResult result) { 
    if (result.isSuccess()) { 
     GoogleSignInAccount account = result.getSignInAccount(); 

     String name = account.getDisplayName(); 
     String email = account.getEmail(); 
     String img_url = account.getPhotoUrl().toString(); 
     Name.setText(name); 
     Email.setText(email); 
     Glide.with(this).load(img_url).into(Prof_Pic); 
     updateUI(true); 
    } else { 
     updateUI(false); 

    } 
} 

private void updateUI(boolean isLogin) { 

    if (isLogin) { 
     Prof_Section.setVisibility(View.VISIBLE); 
     SignIn.setVisibility(View.GONE); 
    } else { 
     Prof_Section.setVisibility(View.GONE); 
     SignIn.setVisibility(View.VISIBLE); 
    } 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    if (requestCode == REQ_CODE) { 

     GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data); 
     handleResult(result); 
    } 
} 

}

, was ich will zu tun ist, wenn Benutzer melden Sie sich mit Google-Konto, dann sollten nächste Aktivität öffnen und die Benutzerinformationen sollten in der nächsten Aktivität zu sehen. Und ich brauche ihren Benutzernamen, E-Mail-Adresse und Telefonnummer in der MySQL-Datenbank gespeichert. Schlage mir vor, was ich tun soll. Ob es möglich ist oder nicht?

+0

Folgen Sie den Schritten in diesem Link https://developers.google.com/identity/sign-in/android/start-integrating –

+0

Bro, ich habe diesen Link bereits durchgemacht, ich habe bereits das Google-Zeichen hinzugefügt Wenn der Benutzer auf die Schaltfläche zum Anmelden klickt, sollte sich eine neue Aktivität öffnen und die Google-Profilinformationen sollten dort angezeigt werden. –

+0

Haben Sie die Datei google-services.json generiert und google angemeldet? Siehe https://developers.google.com/mobile/add?platform=android&cntapi=signin&cnturl=https:%2F%2Fdevelopers.google.com%2Fidentity%2Fsign-in%2Fandroid%2Fsign-in%3Fconfigured%3Dtrue&cntlbl= Continue% 20Adding% 20Sign-In –

Antwort

0

Ändern Sie Ihren Code wie folgt.

holen Sie die Details, die Sie von MainActivity in Ihrer angerufenen Tätigkeit mit getintent senden und zeigen Sie die Details dort an. Sie können sie auch einfach an die SQL-Datenbank senden und dort speichern.

Verwandte Themen