gpt4 book ai didi

android - Google 登录按钮没有任何反应

转载 作者:行者123 更新时间:2023-11-30 02:47:30 25 4
gpt4 key购买 nike

我正在使用 Facebook 和 Google+ API 在我的第一个(登录) Activity 中为两者创建一个登录按钮。我只是按照开发人员页面上的教程将它们一起实现了。 Facebook 按钮工作正常,但当我点击 google+ 按钮时没有任何反应。我做错了什么?

代码:

登录 Activity :

import android.content.Intent;
import android.content.IntentSender.SendIntentException;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast;

import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.plus.Plus;

public class LoginActivity extends FragmentActivity implements GoogleApiClient.ConnectionCallbacks,GoogleApiClient.OnConnectionFailedListener, OnClickListener {

private static String APP_ID="685980371496839"; //for facebook

/* Request code used to invoke sign in user interactions. */
private static final int RC_SIGN_IN = 0;

/* Client used to interact with Google APIs. */
private GoogleApiClient mGoogleApiClient;

/* A flag indicating that a PendingIntent is in progress and prevents
* us from starting further intents.
*/
private boolean mIntentInProgress;

/* Track whether the sign-in button has been clicked so that we know to resolve
* all issues preventing sign-in without waiting.
*/
private boolean mSignInClicked;

/* Store the connection result from onConnectionFailed callbacks so that we can
* resolve them when the user clicks sign-in.
*/
private ConnectionResult mConnectionResult;



FacebookFragment facebookFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_login);
//findViewById(R.id.sign_in_button).setOnClickListener(this);
if (savedInstanceState == null)
{
// Add the fragment on initial activity setup
facebookFragment = new FacebookFragment();
getSupportFragmentManager().beginTransaction().add(android.R.id.content, facebookFragment).commit();
}
else
{
// Or set the fragment from restored state info
facebookFragment = (FacebookFragment) getSupportFragmentManager().findFragmentById(android.R.id.content);
}


mGoogleApiClient = new GoogleApiClient.Builder(this).addConnectionCallbacks(this).addOnConnectionFailedListener(this).addApi(Plus.API).addScope(Plus.SCOPE_PLUS_LOGIN).build();
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.login, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}

protected void onStart() {
super.onStart();
mGoogleApiClient.connect();
}

protected void onStop() {
super.onStop();

if (mGoogleApiClient.isConnected()) {
mGoogleApiClient.disconnect();
}
}

@Override
public void onConnectionFailed(ConnectionResult result) {
// TODO Auto-generated method stub

if (!mIntentInProgress) {
// Store the ConnectionResult so that we can use it later when the user clicks
// 'sign-in'.
mConnectionResult = result;

if (mSignInClicked) {
// The user has already clicked 'sign-in' so we attempt to resolve all
// errors until the user is signed in, or they cancel.
resolveSignInError();
}
}

}

@Override
public void onConnected(Bundle arg0) {
// TODO Auto-generated method stub
mSignInClicked = false;
Toast.makeText(this, "User is connected!", Toast.LENGTH_LONG).show();
}

public void onDisconnected() {
// TODO Auto-generated method stub

}

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();
}
}
}

public void onConnectionSuspended(int cause) {
mGoogleApiClient.connect();
}

public void onClick(View view) {
if (view.getId() == R.id.sign_in_button
&& !mGoogleApiClient.isConnecting()) {
mSignInClicked = true;
resolveSignInError();
}
}

private void resolveSignInError() {
if (mConnectionResult.hasResolution()) {
try {
mIntentInProgress = true;
//startIntentSenderForResult(mConnectionResult.getIntentSender(),RC_SIGN_IN, null, 0, 0, 0);
mConnectionResult.startResolutionForResult(this,RC_SIGN_IN);
} catch (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;
mGoogleApiClient.connect();
}
}
}


}

点击 google+ 按钮时的 LogCat:

07-16 08:35:30.580: E/SoundPool(1270): error loading /system/media/audio/ui/Effect_Tick.ogg
07-16 08:35:30.580: W/AudioService(1270): Soundpool could not load file: /system/media/audio/ui/Effect_Tick.ogg
07-16 08:35:30.580: E/SoundPool(1270): error loading /system/media/audio/ui/Effect_Tick.ogg
07-16 08:35:30.580: W/AudioService(1270): Soundpool could not load file: /system/media/audio/ui/Effect_Tick.ogg
07-16 08:35:30.590: E/SoundPool(1270): error loading /system/media/audio/ui/Effect_Tick.ogg
07-16 08:35:30.590: W/AudioService(1270): Soundpool could not load file: /system/media/audio/ui/Effect_Tick.ogg
07-16 08:35:30.590: E/SoundPool(1270): error loading /system/media/audio/ui/Effect_Tick.ogg
07-16 08:35:30.590: W/AudioService(1270): Soundpool could not load file: /system/media/audio/ui/Effect_Tick.ogg
07-16 08:35:30.590: E/SoundPool(1270): error loading /system/media/audio/ui/Effect_Tick.ogg
07-16 08:35:30.590: W/AudioService(1270): Soundpool could not load file: /system/media/audio/ui/Effect_Tick.ogg
07-16 08:35:30.590: E/SoundPool(1270): error loading /system/media/audio/ui/KeypressStandard.ogg
07-16 08:35:30.590: W/AudioService(1270): Soundpool could not load file: /system/media/audio/ui/KeypressStandard.ogg
07-16 08:35:30.590: E/SoundPool(1270): error loading /system/media/audio/ui/KeypressSpacebar.ogg
07-16 08:35:30.590: W/AudioService(1270): Soundpool could not load file: /system/media/audio/ui/KeypressSpacebar.ogg
07-16 08:35:30.590: E/SoundPool(1270): error loading /system/media/audio/ui/KeypressDelete.ogg
07-16 08:35:30.590: W/AudioService(1270): Soundpool could not load file: /system/media/audio/ui/KeypressDelete.ogg
07-16 08:35:30.590: E/SoundPool(1270): error loading /system/media/audio/ui/KeypressReturn.ogg
07-16 08:35:30.590: W/AudioService(1270): Soundpool could not load file: /system/media/audio/ui/KeypressReturn.ogg
07-16 08:35:30.590: E/SoundPool(1270): error loading /system/media/audio/ui/KeypressInvalid.ogg
07-16 08:35:30.590: W/AudioService(1270): Soundpool could not load file: /system/media/audio/ui/KeypressInvalid.ogg
07-16 08:35:30.590: W/AudioService(1270): onLoadSoundEffects(), Error -1 while loading samples

最佳答案

如果 mConnectionResult 的 hasResolution() 方法失败,我建议您显示错误消息,这让我解决了问题,在我的情况下,这是由于 google play 服务版本之间的兼容性问题。因此,通过更改以下内容的 resolveSignInErrors,您将获得有关可能出现问题的更详细的响应:

private void resolveSigInErrors() {
if(mConnectionResult.hasResolution()){

try {
startIntentSenderForResult(mConnectionResult.getResolution().getIntentSender(),RC_SIGN_IN,null,0,0,0);
} catch (IntentSender.SendIntentException e) {
e.printStackTrace();
mGoogleApliClient.connect();
}
}
else {
// Show dialog using GooglePlayServicesUtil.getErrorDialog()
GooglePlayServicesUtil.showErrorDialogFragment(mConnectionResult.getErrorCode(),this,RC_SIGN_IN);

}
}

这将在 Google Play 服务提供的特殊 View 中打印出了什么问题,它甚至可以帮助您解决错误。

关于android - Google 登录按钮没有任何反应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24781085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com