Получить историю браузера и результат поиска в андроиде

Я пытаюсь получить историю и результаты поиска в браузере Android. В следующем коде я получаю все закладки, которые отлично работают:

public void getBrowser(){ String[] requestedColumns = { Browser.BookmarkColumns.TITLE, Browser.BookmarkColumns.VISITS, Browser.BookmarkColumns.BOOKMARK }; Cursor faves = managedQuery(Browser.BOOKMARKS_URI, requestedColumns, Browser.BookmarkColumns.BOOKMARK + "=1", null, Browser.BookmarkColumns.VISITS); Log.d(DEBUG_TAG, "Bookmarks count: " + faves.getCount()); int titleIdx = faves.getColumnIndex(Browser.BookmarkColumns.TITLE); int visitsIdx = faves.getColumnIndex(Browser.BookmarkColumns.VISITS); int bmIdx = faves.getColumnIndex(Browser.BookmarkColumns.BOOKMARK); faves.moveToFirst(); while (!faves.isAfterLast()) { Log.d("SimpleBookmarks", faves.getString(titleIdx) + " visited " + faves.getInt(visitsIdx) + " times : " + (faves.getInt(bmIdx) != 0 ? "true" : "false")); faves.moveToNext(); } } 

Когда я пытаюсь только получить историю из браузера, я пытаюсь использовать следующий код:

 public void getBrowserHist() { Cursor mCur = managedQuery(Browser.BOOKMARKS_URI, Browser.HISTORY_PROJECTION, null, null, null); mCur.moveToFirst(); if (mCur.moveToFirst() && mCur.getCount() > 0) { while (mCur.isAfterLast() == false) { Log.v("titleIdx", mCur.getString(Browser.HISTORY_PROJECTION_TITLE_INDEX)); Log.v("urlIdx", mCur.getString(Browser.HISTORY_PROJECTION_URL_INDEX)); mCur.moveToNext(); } } } 

Проблема в том, что теперь я получаю все закладки, историю и страницы, которые вы посещали. И мне нужны только столбцы истории. Я также не ищу результаты поиска в Google. Я пробовал объект SEARCHES_URI, но я не могу заставить его работать. Есть ли у кого-нибудь какие-либо предложения, я могу решить свою проблему?

По какой-то странной причине Google решил смешать закладки и историю, называя их «Закладок» в SDK. Попробуйте следующий код, важно фильтровать по типу «закладки».

  String[] proj = new String[] { Browser.BookmarkColumns.TITLE, Browser.BookmarkColumns.URL }; String sel = Browser.BookmarkColumns.BOOKMARK + " = 0"; // 0 = history, 1 = bookmark mCur = this.managedQuery(Browser.BOOKMARKS_URI, proj, sel, null, null); this.startManagingCursor(mCur); mCur.moveToFirst(); String title = ""; String url = ""; if (mCur.moveToFirst() && mCur.getCount() > 0) { while (mCur.isAfterLast() == false && cont) { title = mCur.getString(mCur.getColumnIndex(Browser.BookmarkColumns.TITLE)); url = mCur.getString(mCur.getColumnIndex(Browser.BookmarkColumns.URL)); // Do something with title and url mCur.moveToNext(); } } 

Попробуй это:

 package higherpass.TestingData; import android.app.Activity; import android.os.Bundle; import android.provider.Browser; import android.widget.TextView; import android.database.Cursor; public class TestingData extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TextView view = (TextView) findViewById(R.id.hello); String[] projection = new String[] { Browser.BookmarkColumns.TITLE , Browser.BookmarkColumns.URL }; Cursor mCur = managedQuery(android.provider.Browser.BOOKMARKS_URI, projection, null, null, null ); mCur.moveToFirst(); int titleIdx = mCur.getColumnIndex(Browser.BookmarkColumns.TITLE); int urlIdx = mCur.getColumnIndex(Browser.BookmarkColumns.URL); while (mCur.isAfterLast() == false) { view.append("n" + mCur.getString(titleIdx)); view.append("n" + mCur.getString(urlIdx)); mCur.moveToNext(); } } } 

Извлеченный отсюда