从Android应用程序

时间:2015-10-07 06:39:05

标签: android-studio google-plus logout sharing social-media

我正在制作一个Android应用程序,用户可以在google上分享他们对我的应用程序的看法。第一次,当我点击分享按钮时,它要求输入用户的用户名和密码,输入后分享成功执行,然后再次点击分享按钮后,它没有询问用户名和密码,应用程序只需登录使用旧用户登录详细信息。它是许多用户从单个设备使用的应用程序。因此,每当新用户使用我的应用程序时,他/她就应该被重定向到新的登录页面。

对于分享,我使用以下代码: -

         shareButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // Launch the Google+ share dialog with attribution to your app.
            Intent shareIntent = new PlusShare.Builder(HomeActivity.this)
                    .setType("text/plain")
                    .setText("Welcome to the Google+ platform.")
                    .setContentUrl(Uri.parse("https://developers.google.com/+/"))
                    .getIntent();

            startActivityForResult(shareIntent, 0);
        }
    });

我使用以下代码来实现该方案,但似乎问题仍然存在。

     if (mGoogleApiClient.isConnected()) {
        Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);
        Plus.AccountApi.revokeAccessAndDisconnect(mGoogleApiClient)
                .setResultCallback(new ResultCallback<Status>() {
                    @Override
                    public void onResult(Status status) {
                        mGoogleApiClient.disconnect();
                    }
                });
   }

  private void revokeGplusAccess() {
    if (mGoogleApiClient.isConnected()) {
        Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);
        Plus.AccountApi.revokeAccessAndDisconnect(mGoogleApiClient)
                .setResultCallback(new ResultCallback<Status>() {
                    @Override
                    public void onResult(Status arg0) {
                        Log.e(TAG, "User access revoked!");
                        mGoogleApiClient.connect();
                        updateUI(false);
                    }

                });
    }
}

他们的方法除了googleplus集成以便从Android应用程序共享吗? 任何帮助表示赞赏

问候
阿贾伊

2 个答案:

答案 0 :(得分:0)

您可以使用:

private void signOutFromGplus() {
        if (mGoogleApiClient.isConnected()) {
            Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);
            mGoogleApiClient.disconnect();
            mGoogleApiClient.connect();
            updateUI(false);
        }
    }

请参阅this更多详情。

答案 1 :(得分:0)

尝试此解决方案。

首先,声明:

private static final int REQUEST_GOOGLE_SHARE = 10; // Or another number

在“共享”代码中使用:

startActivityForResult(shareIntent, REQUEST_GOOGLE_SHARE);

然后,您必须在onActivityResult()方法中管理“注销/断开连接”。请尝试以下操作:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    switch (requestCode) {

        ...

        case REQUEST_GOOGLE_SHARE:
            if (resultCode == Activity.RESULT_OK) {
                // Disconnect the user from Google
                if (mGoogleApiClient.isConnected()) {
                    Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);
                    Plus.AccountApi.revokeAccessAndDisconnect(mGoogleApiClient);
                    mGoogleApiClient.disconnect();
                }
            }
            break;
    }

}

通过这种方式,您可以分享您的帖子调用startActivityOnResult()方法。 之后,自动调用onActivityResult()。在此方法中,在REQUEST_GOOGLE_SHARE情况下,您检查共享是否顺利,如果是,则断开用户连接。