2012-01-18 15 views
7

Desidero chiudere il mio account Twitter eliminando i cookie da esso creati. Sono in grado di retrive i cookie generati da Twitter utilizzando il codice:Come disconnettere l'account Twitter eliminando i cookie?

String twit_cookie = getCookie ("http://www.twitter.com"); 

Ma come posso eliminare solo i cookie creati da Twitter perché removeAllCookie() cancella tutti i cookie creati dal browser. Come posso cancellare il cookie specifico per URL o per nome ???

Aiutateci ...

+3

Checkout le risposte qui: http://stackoverflow.com/questions/2834180/how-to-remove-cookies-using-cookiemanager-for-a-specific-domain –

risposta

3

classe CookieManager ha un metodo setCookie. Hai provato le cose come:

setCookie("http://www.twitter.com", null); 

O forse

setCookie("http://www.twitter.com", "auth_token=''"); 
3

È possibile utilizzare il metodo CookieManager#setCookie(String url, String value). Come indicato nei documenti:

Imposta un cookie per l'URL specificato. Qualsiasi cookie esistente con lo stesso host, percorso e nome verrà sostituito con il nuovo cookie.

Il modo "più chiaro" è impostare tutti i cookie creati da Twitter scaduti (un tempo nel passato). Il codice da this answer ha quasi ragione, tranne la data è in futuro.
Codice modificato:

final String domain = "http://www.twitter.com"; 
CookieSyncManager.createInstance(this); 
CookieManager cookieManager = CookieManager.getInstance(); 
String cookiestring = cookieManager.getCookie(domain); //get all cookies 
String[] cookies = cookiestring.split(";"); 
for (int i=0; i<cookies.length; i++) { 
    String[] cookieparts = cookies[i].split("="); //split cookie into name and value etc. 
    // set cookie to an expired date 
    cookieManager.setCookie(domain, cookieparts[0].trim()+"=; Expires=Wed, 31 Dec 2000 23:59:59 GMT"); 
} 
CookieSyncManager.getInstance().sync(); //sync the new cookies just to be sure 
+0

Che dire Questo ? "Il cookie impostato non deve essere scaduto e non deve essere un cookie di sessione, altrimenti verrà ignorato." http://developer.android.com/reference/android/webkit/CookieManager.html#setCookie(java.lang.String, java.lang.String) – trante

+0

@trante [Questa risposta] (http: // stackoverflow. it/a/11621738/2829009) dice che i documenti sono sbagliati e funziona con i cookie scaduti. Se non funziona, basta impostare i cookie per qualche secondo in futuro, in modo che sia valido ma scade dopo poco tempo. – Manu