Warum erhalte ich diesen Fehler? Ich habe bereits ein Projekt in der Google Developer Console erstellt, die Drive API und die Google+ API aktiviert und die "Android Client ID" mit meiner signierten apk sha1 hinzugefügt (ich habe sie übrigens bereits auf der Google Play Console als Betaversion geteilt).
ich Berechtigungen GET_ACCOUNTS
und wenn ich meine G + Mail in der Liste wählen, ich diesen Fehler:G + Verbindung fehlgeschlagen statusCode = SIGN_IN_REQUIRED
D/G+: Connection failed4ConnectionResult{statusCode=SIGN_IN_REQUIRED, resolution=PendingIntent
Muss ich client_id.json
irgendwo in meinem Projektordner hinzufügen? (Ich habe es nur in Google Developer Console für Drive API.)
Codes:
// initialize g+ api client
if (Sp.getBoolean("plus_pic", false)) {
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(Drive.API)
.addScope(Drive.SCOPE_FILE)
.build();
}
und:
@Override
public void onConnected(Bundle bundle) {
if (Plus.PeopleApi.getCurrentPerson(mGoogleApiClient) != null) {
Person currentPerson = Plus.PeopleApi.getCurrentPerson(mGoogleApiClient);
String accountName = Plus.AccountApi.getAccountName(mGoogleApiClient);
Person.Image personImage;
Person.Cover.CoverPhoto personCover;
try {
personImage = currentPerson.getImage();
personCover = currentPerson.getCover().getCoverPhoto();
} catch (Exception e) {
Log.e("G+ COnnection error"," ->"+e.toString());
personCover = null;
personImage = null;
}
if (personCover != null && personImage != null) {
String imgUrl = personImage.getUrl();
Log.e("g+ connection","cover and pic not null");
// getting full size image
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(imgUrl);
stringBuilder.delete(imgUrl.length() - 6, imgUrl.length());
Log.d("G+", stringBuilder.toString());
mGoogleName.setText(currentPerson.getDisplayName());
mGoogleId.setText(accountName);
// setting cover pic
ImageLoader.getInstance().loadImage(personCover.getUrl(), displayImageOptions, new SimpleImageLoadingListener() {
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
super.onLoadingComplete(imageUri, view, loadedImage);
drawerHeaderParent.setBackgroundColor(Color.parseColor("#ffffff"));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
drawerHeaderView.setBackground(new BitmapDrawable(loadedImage));
} else
drawerHeaderView.setBackgroundDrawable(new BitmapDrawable(loadedImage));
}
@Override
public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
super.onLoadingFailed(imageUri, view, failReason);
drawerHeaderView.setBackgroundResource(R.drawable.app_header);
drawerHeaderParent.setBackgroundColor(Color.parseColor((currentTab == 1 ? skinTwo : skin)));
}
@Override
public void onLoadingStarted(String imageUri, View view) {
super.onLoadingStarted(imageUri, view);
drawerHeaderView.setBackgroundResource(R.drawable.app_header);
drawerHeaderParent.setBackgroundColor(Color.parseColor((currentTab == 1 ? skinTwo : skin)));
}
});
// setting profile pic
ImageLoader.getInstance().loadImage(stringBuilder.toString(), displayImageOptions, new SimpleImageLoadingListener() {
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
super.onLoadingComplete(imageUri, view, loadedImage);
drawerProfilePic.setImageBitmap(loadedImage);
drawerProfilePic.setVisibility(View.VISIBLE);
}
@Override
public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
super.onLoadingFailed(imageUri, view, failReason);
}
});
} else {
Toast.makeText(this, getResources().getText(R.string.no_cover_photo), Toast.LENGTH_SHORT).show();
drawerHeaderView.setBackgroundResource(R.drawable.app_header);
drawerHeaderParent.setBackgroundColor(Color.parseColor((currentTab == 1 ? skinTwo : skin)));
}
}
}
@Override
public void onConnectionSuspended(int i) {
Log.d("G+", "Connection suspended");
new Thread(new Runnable() {
@Override
public void run() {
if (mGoogleApiClient != null) {
mGoogleApiClient.connect();
}
}
}).run();
}
public void onConnectionFailed(final ConnectionResult result) {
Log.d("G+", "Connection failed"+ result.getErrorCode()+result.toString());
if (!mIntentInProgress && result.hasResolution()) {
new Thread(new Runnable() {
@Override
public void run() {
try {
mIntentInProgress = true;
startIntentSenderForResult(result.getResolution().getIntentSender(),
RC_SIGN_IN, null, 0, 0, 0);
} catch (IntentSender.SendIntentException e) {
// The intent was canceled before it was sent. Return to the default
// state and attempt to connect to get an updated ConnectionResult.
mIntentInProgress = false;
if (mGoogleApiClient != null) {
mGoogleApiClient.connect();
}
}
}
}).run();
}
}
und:
protected void onActivityResult(int requestCode, int responseCode, Intent intent) {
if (requestCode == RC_SIGN_IN && !mGoogleApiKey && mGoogleApiClient != null) {
new Thread(new Runnable() {
@Override
public void run() {
mIntentInProgress = false;
mGoogleApiKey = true;
// !mGoogleApiClient.isConnecting
if (mGoogleApiClient.isConnecting()) {
mGoogleApiClient.connect();
} else
mGoogleApiClient.disconnect();
}
}).run();
}
i bereits erzeugt AUTH2 Token und i importiert google_services.json auf "app /" Ordner und ich erhalte diese error.Do ich, dass client_id in meinem Code verwenden müssen? – erginduran
BTW ich überprüft Ihre Links gibt es keine beantwortete Frage ich denke, viele PPL sind mit diesem Problem konfrontiert. – erginduran