我用过
Twitter.getSessionManager().clearActiveSession();
这不起作用,下次当我使用twitter登录时,它会打开浏览器的对话框,需要先前的登录,并询问“允许应用程序获取您的数据?”,但不要求用户名和密码。任何将不胜感激。
答案 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();