Получить историю браузера и результаты поиска в Android - PullRequest
4 голосов
/ 02 октября 2011

Я пытаюсь получить историю и результаты поиска из браузера 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, но не могу заставить его работать.У кого-нибудь есть предложения, как я могу решить мою проблему?

Ответы [ 2 ]

10 голосов
/ 31 октября 2011

По какой-то странной причине 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();
        }
    }
1 голос
/ 02 октября 2011

Попробуйте:

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

    }
}

извлечено из здесь

...