gpt4 book ai didi

首次登录时使用 Google plus 进行 Android 登录问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:16:19 24 4
gpt4 key购买 nike

我使用谷歌实现了登录,没有任何问题。我正在使用 fragment 代替 Activity 。在 samsung galaxies 上测试代码时,登录系统会空闲并且不会调用 onConnected 方法。当条款和条件显示时,这只是第一次发生。有什么建议吗?这是我的代码:

@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
initGoogle()
}


private void initGoogle() {
mPlusClient = new PlusClient.Builder(getActivity() , this , this).setVisibleActivities("http://schemas.google.com/AddActivity", "http://schemas.google.com/BuyActivity").build();

}

public void connectWithPlus() {
launchProgressScreen();
if(mPlusClient != null && !mPlusClient.isConnected()){
mPlusClient.connect();
}else{
mPlusClient.clearDefaultAccount();
mPlusClient.disconnect();
mPlusClient.connect();
}
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE_RESOLVE_ERR) {
mConnectionResult = null;
connectWithPlus();
}
}
@Override
public void onConnectionFailed(ConnectionResult result) {
if (result!= null && result.hasResolution()) {
try {
result.startResolutionForResult(getActivity(), REQUEST_CODE_RESOLVE_ERR);
} catch (SendIntentException e) {
connectWithPlus();
}
mConnectionResult = result;
}else{
onTaskResult(ProgressAlert.TASK_CANCEL_GOOGLE_LOGIN, null);
}
}
@Override
public void onConnected(Bundle connectionHint) {
AsyncTask<Object, Void, String> task = new AsyncTask<Object, Void, String>() {
@Override
protected String doInBackground(Object... params) {
String token = null;
try {
token = GoogleAuthUtil.getToken(getActivity(), mPlusClient.getAccountName(),
"oauth2:" + Scopes.PLUS_LOGIN );
} catch (UserRecoverableAuthException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (GoogleAuthException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return token;
}

@Override
protected void onPostExecute(String token){
getAuthDelegate().setToken(token, SocialAccount.google);
getAuthDelegate().loginUsingGoogle(token, new HashMap<String, String>());
}
};
task.execute();
}

@Override
public void onDisconnected() {
Log.w("Google Login", "called disconnected");
}

@Override
public void onClick(View v) {
connectWithPlus();
}

最佳答案

我遇到了同样的问题,我通过重写 Fragment 中的 onResume 方法修复了它。

@Override
public void onResume() {
// TODO Auto-generated method stub
super.onResume();
mGoogleApiClient.connect();
}

我仍然不确定它是否有效。

谢谢,拉胡尔

关于首次登录时使用 Google plus 进行 Android 登录问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17855854/

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