Get browser history and android search result

I am trying to get the history and search results in an Android browser. In the following code, I get all bookmarks that work fine:

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(); } } 

When I try to only get the history from the browser, I try to execute the following code:

 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(); } } } 

The problem is that now I get all the bookmarks, history and pages that you visited. And I only need the columns of history. I am also not looking for Google search results. I tried the SEARCHES_URI object, but I cannot get it to work. Anyone have any suggestions, can I solve my problem?

+4
source share
2 answers

For some strange reason, Google decided to mix bookmarks and history, calling them β€œBookmarks” in the SDK. Try the following code, it’s important to filter by bookmark type.

  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(); } } 
+10
source

Try the following:

 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(); } } } 

extracted from here

+1
source

All Articles