如何使用Fabric Sdk从android注销

时间:2015-04-20 09:13:29

标签: android logout twitter-fabric

我用过

Twitter.getSessionManager().clearActiveSession();

这不起作用,下次当我使用twitter登录时,它会打开浏览器的对话框,需要先前的登录,并询问“允许应用程序获取您的数据?”,但不要求用户名和密码。任何将不胜感激。

7 个答案:

答案 0 :(得分:32)

我终于找到了解决这种情况的方法。

无意中,我在Twitter SDK Kit for Android中找到了一种方法

CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeSessionCookie();
Twitter.getSessionManager().clearActiveSession();
Twitter.logOut();

这很简单,我花了大约半个小时才找到它。

  

3.0及以上版本

CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeSessionCookie();
TwitterCore.getInstance().getSessionManager().clearActiveSession()

答案 1 :(得分:13)

现在不推荐使用CookieSyncManager,我是这样做的:

public void logoutTwitter() {
        TwitterSession twitterSession = TwitterCore.getInstance().getSessionManager().getActiveSession();
        if (twitterSession != null) {
            ClearCookies(getApplicationContext());
            Twitter.getSessionManager().clearActiveSession();
            Twitter.logOut();
        }
}

public static void ClearCookies(Context context) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
            CookieManager.getInstance().removeAllCookies(null);
            CookieManager.getInstance().flush();
        } else {
            CookieSyncManager cookieSyncMngr=CookieSyncManager.createInstance(context);
            cookieSyncMngr.startSync();
            CookieManager cookieManager=CookieManager.getInstance();
            cookieManager.removeAllCookie();
            cookieManager.removeSessionCookie();
            cookieSyncMngr.stopSync();
            cookieSyncMngr.sync();
        }
    }

答案 2 :(得分:4)

最后工作解决方案:

public static void logoutTwitter() {
    TwitterSession twitterSession = TwitterCore.getInstance().getSessionManager().getActiveSession();
    if (twitterSession != null) {
        clearTwitterCookies(mAppContext);
        Twitter.getSessionManager().clearActiveSession();
        Twitter.logOut();
    }
}

public static void clearTwitterCookies(Context context) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
        CookieManager.getInstance().removeAllCookies(null);
        CookieManager.getInstance().flush();

    } else {
        CookieSyncManager cookieSyncMngr = CookieSyncManager.createInstance(context);
        cookieSyncMngr.startSync();
        CookieManager cookieManager = CookieManager.getInstance();
        cookieManager.removeAllCookie();
        cookieManager.removeSessionCookie();
        cookieSyncMngr.stopSync();
        cookieSyncMngr.sync();
    }
}

答案 3 :(得分:2)

上述方法已经灭绝。

{{1}}

答案 4 :(得分:1)

您现在可以使用:

Digits.logout();

答案 5 :(得分:1)

TwitterCore.getInstance().getSessionManager().clearActiveSession();

使用 Twitter身份验证

登录时,这是logout方法

答案 6 :(得分:0)

要注销当前用户,只需致电

mTwitter.shutdown();