Android Webkit CookieManager:从 SQLite3 数据库加载 Cookie

Android Webkit CookieManager: Load Cookies from SQLite3 Database

Android 应用程序的所有 WebView 共享(以及其他数据)它们存储的 cookie 集。我想将 cookie 存储分开,即每个 WebView 都应该有自己的一组 cookie。

因此,我正在寻找一种方法来从 WebView 中检索包括元信息(过期日期、标志等)在内的所有 cookie,单独保存它们并在需要时再次设置它们。 CookieManager 有一个方法 getCookie(),但是,它只是 returns 当前有效 cookie 的值和名称,没有任何元信息(如讨论的 here)。

Android WebView 将 cookie 存储在磁盘上的 SQLite3 数据库中。显然,获得完整 cookie 信息的唯一方法是查看磁盘上的 cookie 存储。可以解析 SQLite3 数据库并使用 CookieManagersetCookie(),但所有加密值都会丢失。所以我的想法是复制整个数据库文件并根据需要交换(即重命名)文件。

这种方法的潜在问题:

在哪里可以找到最初从磁盘加载 cookie 的代码? Android SDK 的CookieManager.java 是一个抽象class,我在哪里可以找到实际的实现?它可能对这个问题有宝贵的见解。

供参考: Chromium 开发团队的一名成员 confirmed 目前无法在应用程序中分离 cookie 存储。