从 android 应用程序共享后从 google plus 注销

Posted

技术标签:

【中文标题】从 android 应用程序共享后从 google plus 注销【英文标题】:logout from google plus after sharing from android application 【发布时间】:2015-10-07 06:39:04 【问题描述】:

我正在制作一个 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 应用程序共享? 任何帮助表示赞赏

问候 阿杰

【问题讨论】:

【参考方案1】:

你可以用这个:

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

更多详情请参考this。

【讨论】:

我已经更新了我的代码并且之前使用过该链接。分享后,用户应该从 google plus 注销,当其他用户点击分享按钮时,它应该需要填写详细信息才能开始 “它应该需要填写详细信息才能开始”是什么意思?? 语法错误:-在google plus上分享后,用户应该从google plus注销,当其他用户点击分享按钮时,他/她应该填写他/她的详细信息才能在google plus上分享.我还在我的应用程序中集成了 facebook sdk,每次用户点击登录按钮时,他/她都会重定向到 webview 中的 facebook 登录页面。为此,我已经从我的 android 设备中删除了 facebook 应用程序 您是指详细信息的凭据?【参考方案2】:

试试这个解决方案。

首先声明:

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 的情况下,您检查共享是否顺利,如果是,则断开用户连接。

【讨论】:

以上是关于从 android 应用程序共享后从 google plus 注销的主要内容,如果未能解决你的问题,请参考以下文章

从在线数据库同步后从 android 应用程序获取 sqlite 数据库

如何从 Android 上的 Google 地图共享 url 获取坐标

按下主页按钮后从系统覆盖窗口启动 Activity

与 Facebook iOS SDK 共享后从 Facebook 注销

Android Studio - 线程完成后从 SQLite 获取数据

如何获取 Android 内部应用程序共享密钥 SHA1 以启用 Google API?