Android — вход в систему и совместное использование с Google Plus

#android #google-plus #logout #sharing

#Android #google-plus #Выход #совместное использование

Вопрос:

Я хочу, чтобы мое приложение входило в систему и делилось с помощью входа в Google Plus, при первом появлении оно появляется и спрашивает, с какой учетной записи Google вы хотите войти и поделиться, но когда я попытался поделиться во второй раз, всплывающее окно не работает, и оно использует учетную запись по умолчанию, из которой я опубликовал ранее.

Я попытался очистить учетную запись по умолчанию, но все еще не работает. Кто-нибудь, пожалуйста, предложит мне какое-нибудь решение?

Комментарии:

1. Показать некоторый код .. смотрите эту ссылку developers.google.com/ /mobile/android/share

2. Я уже ссылался на эту ссылку, часть совместного использования работает нормально, я могу поделиться контентом, но проблема в том, что когда я пытаюсь поделиться во второй раз, pop не работает (он не спрашивает, с какой учетной записи вы хотите поделиться), и он использует учетную запись по умолчанию, с которой я хочу поделиться.уже публиковал ранее.

Ответ №1:

 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() amp;amp; btnSignIn.getText().equals(getString(R.string.signin))) {
                    mPlusClient.connect();
                } else if (mPlusClient.isConnected() amp;amp; 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 amp;amp; responseCode == RESULT_OK) {
            mPlusClient.disconnect();
            mPlusClient.connect();
        } else if (requestCode == REQUEST_CODE_SHARE amp;amp; 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();
                }
            }
        });
  

Комментарии:

1. не работает по-прежнему я сталкиваюсь с той же проблемой, всплывающее окно не работает во второй раз, и оно использует учетную запись по умолчанию, из которой я опубликовал ранее

2. да, так и будет, потому что, если вам нужно спрашивать каждый раз, когда вы выходите из приложения, просто выйдите из предыдущего сеанса. Только тогда он будет показывать новое диалоговое окно каждый раз.