2013-12-10 4 views
3

Как очистить историю браузера Chrome. Для родного браузера я использую следующий код:Очистить историю браузера Chrome

Browser.clearHistory(getContentResolver()); 

Но это не работает для хром. Как я могу очистить историю браузера Chrome? Возможно ли это?

+0

https://code.google.com/p/chromium/issues/detail?id=138755 Эта ссылка относится к закладкам, но он также может работать для хромовой истории (если вы замените закладки в URI историей) – athor

+0

любое обновление с тех пор? – keybee

+0

Возможный дубликат [Android программно удаляет файлы cookie браузера Chrome/по умолчанию, историю, поиск] (http://stackoverflow.com/questions/29196106/android-programmatically-delete-chrome-default-browser-cookies-history-searc) –

ответ

1

Это работа Ф.О. мне

Uri BOOKMARKS_URI = Uri.parse("content://browser/bookmarks"); 
    String TITLE = "title"; 
    String VISITS = "visits"; 
    String BOOKMARK = "bookmark"; 

    ContentResolver resolver = getContentResolver(); 
      try { 
       Log.i("DEBUG_", "ContentResolver"); 
       Cursor c = resolver.query(
         BOOKMARKS_URI, 
         null, 
         null, null, null); 
       c.moveToFirst(); 
       Log.i("DEBUG_", "Cursor : " + c.toString()); 
       resolver.delete(BOOKMARKS_URI, "bookmark == 1", null); 
       Log.i("DEBUG_", "ContentResolver delete "); 

      } catch (IllegalStateException e) { 
       Log.i("DEBUG_", "IllegalStateException " + e.getMessage()); 
       e.printStackTrace(); 
      } 

или

Cursor faves = managedQuery(BOOKMARKS_URI, 
       requestedColumns, 
        null, null, null); 
+0

если вам нужна только история, эта ссылка поможет вам http://stackoverflow.com/questions/33378357/clear-chrome-browser-history-programmatically/41784478#41784478 – zloj

0

Да это posssible очистить историю хромированной из вашего приложения. См. Ниже.

/** 
* Clear the browser history 
*/ 
private void clearChromeHistory(){ 
    ContentResolver cr = getContentResolver(); 
    Uri historyUri = Uri.parse("content://com.android.chrome.browser/history"); 
    deleteChromeHistoryJava(cr, historyUri, null, null); 

} 




/** 
* Delete chrome browser hisory 
* @param cr content resolver 
* @param whereClause Uri of the browser history query 
* @param projection projection array 
* @param selection selection item 
*/ 
private void deleteChromeHistoryJava(ContentResolver cr, Uri whereClause, String[] projection, String selection) { 
    Cursor mCursor = null; 
    try { 
     mCursor = cr.query(whereClause, projection, selection, 
       null, null); 
     Log.i("deleteChromeHistoryJava", " Query: " + whereClause); 
     if (mCursor != null) { 
      mCursor.moveToFirst(); 
      int count = mCursor.getColumnCount(); 
      String COUNT = String.valueOf(count); 
      Log.i("deleteChromeHistoryJava", " mCursor count" + COUNT); 
      String url = ""; 
      if (mCursor.moveToFirst() && mCursor.getCount() > 0) { 
       while (!mCursor.isAfterLast()) { 
        url = mCursor.getString(mCursor.getColumnIndex(Browser.BookmarkColumns.URL)); 
        Log.i("deleteChromeHistoryJava", " url: " + url); 
        mCursor.moveToNext(); 
       } 
      } 
      cr.delete(whereClause, selection, null); 
      Log.i("deleteChromeHistoryJava", " GOOD"); 
     } 
    } catch (IllegalStateException e) { 
     Log.i("deleteChromeHistoryJava", " IllegalStateException: " + e.getMessage()); 
    } finally { 
     if (mCursor != null) mCursor.close(); 
    } 
} 

Добавить разрешение в манифесте

<uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"/>
<uses-permission android:name="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS"/> 
Смежные вопросы