如何清除android marshmallow中的浏览历史记录

时间:2015-11-13 09:38:20

标签: android browser android-6.0-marshmallow

我正在努力清除android中的浏览器历史记录。直到android 5.1.1即;棒棒糖以下语法工作正常。

Browser.clearHistory(mContextUtility.getContentResolver());

但是,对于android 6即;棉花糖它不起作用。那么如何解决这个问题呢,有没有其他方法来清除浏览器历史记录?

2 个答案:

答案 0 :(得分:1)

查看Android源代码,它看起来并不适合您。请注意,clearHistory方法不再执行任何操作,因此canClearHistory总是返回false

/**
 * Returns whether there is any history to clear.
 *
 * @param cr   The ContentResolver used to access the database.
 * @return boolean  True if the history can be cleared.
 * @removed
 */
public static final boolean canClearHistory(ContentResolver cr) {
    return false;
}

/**
 *  Delete all entries from the bookmarks/history table which are
 *  not bookmarks.  Also set all visited bookmarks to unvisited.
 *
 *  @param cr   The ContentResolver used to access the database.
 *  @removed
 */
public static final void clearHistory(ContentResolver cr) {
}

以下是5.1.1 r1中的相同方法,当它们实际起作用时:

    public static final boolean More ...canClearHistory(ContentResolver cr) {
    Cursor cursor = null;
    boolean ret = false;
    try {
        cursor = cr.query(History.CONTENT_URI,
            new String [] { History._ID, History.VISITS },
            null, null, null);
        ret = cursor.getCount() > 0;
    } catch (IllegalStateException e) {
        Log.e(LOGTAG, "canClearHistory", e);
    } finally {
        if (cursor != null) cursor.close();
    }
    return ret;
}
  

删除书签/历史记录表中没有的所有条目   书签。同时将所有访问过的书签设置为未访问的书签。需要   android.Manifest.permission参数:cr以前使用的ContentResolver   访问数据库。

public static final void More ...clearHistory(ContentResolver cr) {
    deleteHistoryWhere(cr, null);
}

答案 1 :(得分:1)

已删除许可以在Marshmallow上方读取和书写书签(API> = 23) 请参阅https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-bookmark-browser

看起来您可以在数据库中实现自己的浏览器应用并在本地保存书签,但API> = 23个单词,您无法从Chrome访问历史记录或书签。