2014-06-24 5 views
0

내 앱이 로그인하고 Google Plus 로그인과 공유하고 처음으로 로그인하고 어떤 Google 계정에서 로그인하고 공유할지 묻는 메시지를 표시하려고합니다. 두 번째로 팝업이 작동하지 않고 이전에 게시 한 기본 계정을 사용 중입니다.Android - Google Plus로 로그인 및 공유

기본 계정을 지우려고했으나 여전히 작동하지 않았습니다. 아무도 해결책을 제안 해 주시겠습니까?

+0

는 일부 – Shruti

+0

나는 이미 내가 수 있어요 공유 부분이 잘 작동이 링크를 참조 한이 링크 https://developers.google.com/+/mobile/android/share/를 code..see보기 콘텐츠를 공유하지만 문제는 두 번째로 공유하려고 할 때 팝업이 작동하지 않는 것입니다 (공유하려는 계정을 묻지 않고 이전에 게시 한 기본 계정을 사용함). – Aashish

답변

0
private static final int REQUEST_CODE_RESOLVE_ERR = 9000; 
    private static final int REQUEST_CODE_SHARE = 1000; 
    private PlusClient mPlusClient; 
    private PlusClient.Builder mPlusClientBuilder; 
    private PlusShare.Builder mPlusShareBuilder; 

//Inside onCreate() 

mPlusClientBuilder = new Builder(this, this, this); 
     mPlusClientBuilder.setScopes(Scopes.PLUS_LOGIN, Scopes.PLUS_PROFILE); 
     mPlusClient = mPlusClientBuilder.build(); 
mPlusClient.connect(); 

//on click on button share or login 

btnSignIn.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       if (!mPlusClient.isConnected() && btnSignIn.getText().equals(getString(R.string.signin))) { 
        mPlusClient.connect(); 
       } else if (mPlusClient.isConnected() && btnSignIn.getText().equals(getString(R.string.signout))) { 
        mPlusClient.clearDefaultAccount(); 
        mPlusClient.disconnect(); 




       } 
      } 
     }); 

//Overrides methods 

@Override 
    public void onConnectionFailed(ConnectionResult result) { 
     if (result.hasResolution()) { 
      // The user clicked the sign-in button already. Start to resolve 
      // connection errors. Wait until onConnected() to dismiss the 
      // connection dialog. 
      try { 
       result.startResolutionForResult(this, REQUEST_CODE_RESOLVE_ERR); 
      } catch (SendIntentException e) { 
       mPlusClient.disconnect(); 
       mPlusClient.connect(); 
      } 
     } 
    } 

    @Override 
    public void onConnected(Bundle arg0) { 
     String accountName = mPlusClient.getAccountName(); 

    } 

//onActivity result: 

@Override 
    protected void onActivityResult(int requestCode, int responseCode, Intent data) { 
     super.onActivityResult(requestCode, responseCode, data); 
     if (requestCode == REQUEST_CODE_RESOLVE_ERR && responseCode == RESULT_OK) { 
      mPlusClient.disconnect(); 
      mPlusClient.connect(); 
     } else if (requestCode == REQUEST_CODE_SHARE && responseCode == RESULT_OK) { 
      finish(); 
     } 

    } 

//on Button Share click event: 

btnShare.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       if (mPlusClient.isConnected()) { 

        mPlusShareBuilder = new PlusShare.Builder(getApplicationContext()); 
        mPlusShareBuilder.setType("text/plain"); 
        mPlusShareBuilder.setText(IN_SHARE_MESSAGE + IN_SHARE_LINK); 
        mPlusShareBuilder.setContentUrl(Uri.parse(IN_SHARE_LINK)); 

        // Intent shareIntent = 
        // PlusShare.Builder.from(IJoomerGooglePlusShareActivity.this).setText().setType("text/plain").setContent(Uri.parse("http://example.com/cheesecake/lemon")) 
        // .getIntent(); 
        Intent shareIntent = mPlusShareBuilder.getIntent(); 
        startActivityForResult(shareIntent, REQUEST_CODE_SHARE); 
       } else { 
        Yoast.makeText(YOUR ACTIVITY.this,getString(R.string.signin_with_google_account), Toast.LENGTH_LONG).show(); 
       } 
      } 
     }); 
+0

아직 작동하지 않습니다. 팝업이 두 번째로 작동하지 않는 동일한 문제에 직면하고 있습니다. 이전에 게시 한 기본 계정이 필요합니다. – Aashish

+0

나중에 필요할 때마다 묻는 메시지가 표시됩니다. 앱에서 로그 아웃하면 이전 세션이 종료됩니다. 그러면 매번 새로운 대화 상자 만 표시됩니다. –