Ich weiß nicht ob das so reicht. Denn Code habe ich nicht getestet nur am Handy geschrieben.
Nur du willst auf deinen goggel Game Account zugreifen. Woher soll denn die app wissen mit welchen account du dich verbinden möchtest. Nirgendwo gibst du dein account ein. Meiner meinung nach ist alles was du bis jetzt in as an config datein gemacht hast dazu da damit sich die app mit google verbinden kann. Aber wie dein account oder der des users heißt giebt du nicht an. Ob das mit dem DEFAULT_GAMES_SIGN_IN reicht weiß ich nicht. Nur in der if Abfrage ist das noch gar nicht gelaufen und die Variablen in der Klasse sind auch noch nicht gesetzt. Deshalb habe ich versucht den Code zu veränder habe aber jetz hier kein AS zur Hand.
Und in den Beispiel von Google wird es eben so gemacht. Mit dem New.
Google Play SignIn funktioniert nicht/Real Time Multiplayer Game ohne Beitrittsgebühren?
-
-
hier in dem Beispiel von Google wird es auch so gemach denke das wird schon seine Richtigkeit haben.
https://github.com/googlesampl…samples/quickstart/signinJava
Alles anzeigenpackage com.google.samples.quickstart.signin; import android.content.Intent; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.widget.TextView; import com.google.android.gms.auth.api.signin.GoogleSignIn; import com.google.android.gms.auth.api.signin.GoogleSignInAccount; import com.google.android.gms.auth.api.signin.GoogleSignInClient; import com.google.android.gms.auth.api.signin.GoogleSignInOptions; import com.google.android.gms.common.SignInButton; import com.google.android.gms.common.api.ApiException; import com.google.android.gms.tasks.OnCompleteListener; import com.google.android.gms.tasks.Task; /** * Activity to demonstrate basic retrieval of the Google user's ID, email address, and basic * profile. */ public class SignInActivity extends AppCompatActivity implements View.OnClickListener { private static final String TAG = "SignInActivity"; private static final int RC_SIGN_IN = 9001; private GoogleSignInClient mGoogleSignInClient; private TextView mStatusTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Views mStatusTextView = findViewById(R.id.status); // Button listeners findViewById(R.id.sign_in_button).setOnClickListener(this); findViewById(R.id.sign_out_button).setOnClickListener(this); findViewById(R.id.disconnect_button).setOnClickListener(this); // [START configure_signin] // 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(); // [END configure_signin] // [START build_client] // Build a GoogleSignInClient with the options specified by gso. mGoogleSignInClient = GoogleSignIn.getClient(this, gso); // [END build_client] // [START customize_button] // Set the dimensions of the sign-in button. SignInButton signInButton = findViewById(R.id.sign_in_button); signInButton.setSize(SignInButton.SIZE_STANDARD); signInButton.setColorScheme(SignInButton.COLOR_LIGHT); // [END customize_button] } @Override public void onStart() { super.onStart(); // [START on_start_sign_in] // Check for existing Google Sign In account, if the user is already signed in // the GoogleSignInAccount will be non-null. GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(this); updateUI(account); // [END on_start_sign_in] } // [START onActivityResult] @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); // Result returned from launching the Intent from GoogleSignInClient.getSignInIntent(...); if (requestCode == RC_SIGN_IN) { // The Task returned from this call is always completed, no need to attach // a listener. Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data); handleSignInResult(task); } } // [END onActivityResult] // [START handleSignInResult] private void handleSignInResult(Task<GoogleSignInAccount> completedTask) { try { GoogleSignInAccount account = completedTask.getResult(ApiException.class); // Signed in successfully, show authenticated UI. updateUI(account); } catch (ApiException e) { // The ApiException status code indicates the detailed failure reason. // Please refer to the GoogleSignInStatusCodes class reference for more information. Log.w(TAG, "signInResult:failed code=" + e.getStatusCode()); updateUI(null); } } // [END handleSignInResult] // [START signIn] private void signIn() { Intent signInIntent = mGoogleSignInClient.getSignInIntent(); startActivityForResult(signInIntent, RC_SIGN_IN); } // [END signIn] // [START signOut] private void signOut() { mGoogleSignInClient.signOut() .addOnCompleteListener(this, new OnCompleteListener<Void>() { @Override public void onComplete(@NonNull Task<Void> task) { // [START_EXCLUDE] updateUI(null); // [END_EXCLUDE] } }); } // [END signOut] // [START revokeAccess] private void revokeAccess() { mGoogleSignInClient.revokeAccess() .addOnCompleteListener(this, new OnCompleteListener<Void>() { @Override public void onComplete(@NonNull Task<Void> task) { // [START_EXCLUDE] updateUI(null); // [END_EXCLUDE] } }); } // [END revokeAccess] private void updateUI(@Nullable GoogleSignInAccount account) { if (account != null) { mStatusTextView.setText(getString(R.string.signed_in_fmt, account.getDisplayName())); findViewById(R.id.sign_in_button).setVisibility(View.GONE); findViewById(R.id.sign_out_and_disconnect).setVisibility(View.VISIBLE); } else { mStatusTextView.setText(R.string.signed_out); findViewById(R.id.sign_in_button).setVisibility(View.VISIBLE); findViewById(R.id.sign_out_and_disconnect).setVisibility(View.GONE); } } @Override public void onClick(View v) { switch (v.getId()) { case R.id.sign_in_button: signIn(); break; case R.id.sign_out_button: signOut(); break; case R.id.disconnect_button: revokeAccess(); break; } } }
-
so wie ich den Code lese wird in dem mit new erzeugten Objekt der eingeloggte oder der sich einloggt als default gespeichert . Und dafür musst du auch Speicher reservieren und das eben mit new.
-
Habe es gerade mit dem new ausprobiert (sowohl mit dem Code von oben als auch mit einem selbst geschriebenem). Leider geht es trotzdem nicht. Ich glaube ich habe da irgendeine Verknüpfung zwischen Google und meiner App vergessen. Ich bin jetzt aber eigentlich schon mehrere Male verschiedenste Tutorials zu den Verknüpfungen durchgegangen und habe keinen Fehler gefunden.
-
Dann weiss ich leider auch nicht weiter.
-
HI, was mir noch eingefallen ist wenn du es im Emulato testest hat du auch einen mit den Googel erweiterungen API.
ansonsten hier noch ein video wird recht gut erkärt.
Externer Inhalt www.youtube.comInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt. -
Ich bin mir nicht sicher, jedoch glaube ich, dass das Video wieder über Google Sign In geht und nicht über Google Play Sign In (Google Game Services Sign In) oder? Und man braucht laut Google den Login für Google Play, um Real Time Multiplayer nutzen zu können
-
Welche Anleitung ist den deiner Meinung nach die richtige. Bitte Link.
https://developers.google.com/games/services/android/signin
Die Seite heist "Sign-in in Android Games" und der Code sieht gleich aus.
Hast du es denn wenigsten mal getestet, und vor allen weiter programmiert.Glaube nicht das das zweierlei ist.
-
Das wo du gerade geschickt hast, ist das Tutorial, das ich benutzt hab. Ich habe jetzt gerade das Google Sign In Tutorial ausprobiert, das du mir geschickt hast. Das hat zwar funktioniert, war jedoch nur, wie erwartet, für ein Google Login und funktioniert nicht für Real Time Multiplayer.
-
was welche Funktionen willst du von multiplayer benutzen?
Zeige mal was du eigentlich machen willst. -
Ich will die Real Time Multiplay Funktion von Google benutzen. Dafür brauche ich einen Google Play Login.
https://developers.google.com/…droid/realtimeMultiplayer -
ja das ist schon klar nur die API musst du schon selber benutzen. Einen log In hast du ja nun.
Vielleicht hilft das auch etwas https://www.buschmais.de/2013/…illst-du-mit-mir-spielen/ -
Ich habe nun noch einmal alles neu gemacht und den Keystore neu erstellt. Nun funktioniert alles. Ich denke mal, dass der alte einfach kaputt war. Danke für die Hilfe
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!