如何使用Fabric Sdk从android注销

Nea*_*lia 6 android logout twitter-fabric

我用了

Twitter.getSessionManager().clearActiveSession();
Run Code Online (Sandbox Code Playgroud)

这不起作用,下次当我使用twitter登录时,它会打开浏览器的对话框,需要先前的登录,并询问"允许应用程序获取您的数据?",但不要求输入用户名和密码.任何帮助都将是赞赏.

Nea*_*lia 35

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

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

CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeSessionCookie();
Twitter.getSessionManager().clearActiveSession();
Twitter.logOut();
Run Code Online (Sandbox Code Playgroud)

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

对于3.0及更高版本

CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeSessionCookie();
TwitterCore.getInstance().getSessionManager().clearActiveSession()
Run Code Online (Sandbox Code Playgroud)


Moh*_*ngh 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();
        }
    }
Run Code Online (Sandbox Code Playgroud)