Sincronização bidirecional para cookies entre HttpURLConnection (java.net.CookieManager) e WebView (android.webkit.CookieManager)

Infelizmente, há vários gerentes de cookies para o Android. Os cookies paraHttpURLConnection são mantidos porjava.net.CookieManager e os cookies paraWebView são mantidos porandroid.webkit.CookieManager. Esses repositórios de cookies são separados e exigem sincronização manual.

Meu aplicativo usa os doisHttpURLConnections e mostraWebViews (é um híbrido de HTML nativo). Naturalmente, quero que ambos compartilhem todos os cookies - então terei uma sessão transparente por toda parte.

Mais especificamente:

Quando um cookie é definido / alterado em um HttpURLConnection, quero que o WebViews também veja essa alteração.Quando um cookie é definido / alterado em um WebView, quero que o próximo HttpURLConnections também veja essa alteração.

Simplificando, estou procurando uma sincronização bidirecional. Ou melhor ainda, para que ambos usem o mesmo repositório de cookies. Você pode assumir que ambos estão ativos no mesmo tempo (como em guias diferentes).

Questões:

Existe uma maneira de fazer ambos usarem o mesmo repositório de cookies?

Se não, qual é a prática recomendada para fazer a sincronização manual? Quando exatamente eu deveria sincronizar e como?

Pergunta relacionada: estequestão aborda um problema semelhante, mas apenas implementa a sincronização unidirecional (HttpURLConnection -> WebView).

Minha melhor ideia até agora: Eu realmente quero evitar uma sincronização manual, então eu tentei pensar em como fazer ambos usarem o mesmo repositório. Talvez eu possa criar meu próprio manipulador de núcleo que se estendejava.net.CookieManager. Vou configurá-lo como o manipulador de cookie principal usandojava.net.CookieHandler.setDefault(). Sua implementação será um proxy para oandroid.webkit.CookieManager instância do manipulador (para cada função, simplesmente acessarei o gerenciador do webkit).

questionAnswers(1)

yourAnswerToTheQuestion