Je suis implémentant Google+ Connectez-vous via la documentation du développeur. Mon En outre, la sélection d'un compte de "Choisir un compte" affiche les autorisations, si je frappe Annuler à ce point et sélectionnez un autre compte dans la cadran, il affiche le problème. image pour les autorisations ou parfois aucune image du tout. J'ai également eu OnconnectionFailed Méthodes est appelé après que je choisis un compte à vous connecter avec l'erreur
résolution_requiked code> (code d'erreur 6). Cela lance une autre boîte de dialogue "Choisir un compte" qui fonctionne alors (me prend aux autorisations) si je sélectionne le même compte. Je ne sais pas pourquoi il incite une autre boîte de dialogue. Je commence par
résolvesigninerror code> toute idée?
une erreur interne a eu lieu code> toast une fois. P>
3 Réponses :
Le code suivant fonctionne bien pour moi, veuillez mettre à jour le vôtre avec elle et vérifier.
private void resolveSignInError() { if (mConnectionResult.hasResolution()) { try { mIntentInProgress = true; mConnectionResult.startResolutionForResult(this, RC_SIGN_IN); } catch (SendIntentException e) { mIntentInProgress = false; mGoogleApiClient.connect(); } } } @Override public void onConnectionFailed(ConnectionResult result) { if (!result.hasResolution()) { GooglePlayServicesUtil.getErrorDialog(result.getErrorCode(), this, 0).show(); return; } if (!mIntentInProgress) { mConnectionResult = result; if (mSignInClicked) { resolveSignInError(); } } } @Override protected void onActivityResult(int requestCode, int responseCode, Intent intent) { if (requestCode == RC_SIGN_IN) { if (responseCode != RESULT_OK) { mSignInClicked = false; } mIntentInProgress = false; if (!mGoogleApiClient.isConnecting()) { mGoogleApiClient.connect(); } } }
dans "Onactitenitforresult", vous devez supprimer la première ligne "Super.OntacivityResult (DemandeCode, résultat, données);" P>
Aussi, juste pour être sûr, vous créez votre googleapiclient dans Oncreate, connectez-le dans OnStart () et déconnectez-le dans OnStop ()? P>
Appelez-vous Resolvesigninerror () de n'importe où ailleurs dans votre code? P>
Merci. J'ai eu un Super.AccurityForresult () et le retire (resp. L'appelant que lorsque je n'ai pas géré le résultat moi-même) a résolu le problème.
Entrez la fonction d'identification dans getProfileInformation (). Comme ça.Hope, ce code peut vous aider
private void getProfileInformation() { try { if (Plus.PeopleApi.getCurrentPerson(mGoogleApiClient) != null) { Person currentPerson = Plus.PeopleApi .getCurrentPerson(mGoogleApiClient); String personName = currentPerson.getDisplayName(); String personPhotoUrl = currentPerson.getImage().getUrl(); String personGooglePlusProfile = currentPerson.getUrl(); String email = Plus.AccountApi.getAccountName(mGoogleApiClient); forget_login_txt.setText(personName+" "+email); Log.e(TAG, "Name: " + personName + ", plusProfile: " + personGooglePlusProfile + ", email: " + email + ", Image: " + personPhotoUrl); personPhotoUrl = personPhotoUrl.substring(0, personPhotoUrl.length() - 2) + PROFILE_PIC_SIZE; signOutFromGplus(); } else { Toast.makeText(getApplicationContext(), "Person information is null", Toast.LENGTH_LONG).show(); } } catch (Exception e) { e.printStackTrace(); } }