2015-10-27 204 views
2

我试过使用下面的代码,但它不适用于Chrome,只有旧的浏览器。以编程方式清除Chrome浏览器历史记录

Browser.clearHistory(getContentResolver()); 
+3

注意'Browser'在API级别完全消除23 – CommonsWare

+0

@CommonsWare你知道如果有反正与Chrome浏览器交互? – SPatrickApps

+2

Android SDK本身没有任何内容。无论Chrome团队是否为其Android应用程序记录了任何类型的API,我都不能说。 – CommonsWare

回答

3

对于我这个代码工作

private void clearHistoryChrome() { 
    ContentResolver cr = getContentResolver(); 
    if (canClearHistory(cr)) { 
     deleteHistoryWhere(cr, null); 
    } 
} 

private void deleteHistoryWhere(ContentResolver cr, String whereClause) { 
    String CONTENT_URI = "content://com.android.chrome.browser/history"; 
    Uri URI = Uri.parse(CONTENT_URI); 
    Cursor cursor = null; 
    try { 
     cursor = cr.query(URI, new String[]{"url"}, whereClause, 
       null, null); 
     if (cursor != null) { 
      if (cursor.moveToFirst()) { 
       final WebIconDatabase iconDb = WebIconDatabase.getInstance(); 
       do { 
        // Delete favicons 
        // TODO don't release if the URL is bookmarked 
        iconDb.releaseIconForPageUrl(cursor.getString(0)); 
       } while (cursor.moveToNext()); 
       cr.delete(URI, whereClause, null); 
      } 
     } 
    } catch (IllegalStateException e) { 
     Log.i("DEBUG_", "deleteHistoryWhere IllegalStateException: " + e.getMessage()); 
     return; 
    } finally { 
     if (cursor != null) cursor.close(); 
    } 
    Log.i("DEBUG_", "deleteHistoryWhere: GOOD"); 
} 

public boolean canClearHistory(ContentResolver cr) { 
    String CONTENT_URI = "content://com.android.chrome.browser/history"; 
    Uri URI = Uri.parse(CONTENT_URI); 
    String _ID = "_id"; 
    String VISITS = "visits"; 
    Cursor cursor = null; 
    boolean ret = false; 
    try { 
     cursor = cr.query(URI, 
       new String[]{_ID, VISITS}, 
       null, null, null); 
     if (cursor != null) { 
      ret = cursor.getCount() > 0; 
     } 
    } catch (IllegalStateException e) { 
     Log.i("DEBUG_", "canClearHistory IllegalStateException: " + e.getMessage()); 
    } finally { 
     if (cursor != null) cursor.close(); 
    } 
    Log.i("DEBUG_", "canClearHistory: " + ret); 
    return ret; 
} 

我认为这将有助于你

相关问题