Herhangi bir sorun yaşamadan google ile giriş yaptım. Bir etkinlik yerine bir parça kullanıyorum. Samsung galaksilerindeki kodun test edilmesi, signin sisteminin boşta kalması ve onConnected yöntemini çağırmamasıdır. Bu, şartlar ve koşullar gösterildiğinde ilk defa gerçekleşir. Herhangi bir tavsiye?Android ile giriş yapın Google plus ile ilk giriş yapın.
@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();
}
geri yerine onConnectionFailed muyuz? – Lee
Hayır, hiçbir şey alıyorum. Ancak tuhaf bir şekilde tekrar bağlanmayı denerseniz, başarısız olmadan Bağlantılı'yı çağırır. –
İlgili Etkinlik kodunun ilgili bitlerini kaydeder misiniz? Etkinlik yaşam döngüsünde nasıl bağlı olduğunuzu görmek isterim. – Lee