【问题标题】:How to read Chrome history in Android如何在 Android 中读取 Chrome 历史记录
【发布时间】:2014-12-19 22:31:11
【问题描述】:

是否可以只读取历史记录?

通过使用以下代码,我可以获得历史记录和书签,但我只想阅读历史记录。

String[] proj = new String[] { Browser.BookmarkColumns.TITLE, Browser.BookmarkColumns.URL };
String chnHistory = Browser.BookmarkColumns.BOOKMARK + " = 0"+" OR visits > 0"; // 0 = history, 1 = bookmark
mycur = getContentResolver().query(Browser.BOOKMARKS_URI, proj, chnHistory, null, null);

int count = mycur.getCount();
mycur.moveToFirst();
array = new ArrayList<String>();
if (mycur.moveToFirst() && count > 0) 
{
  while (count > 0) 
  {
     array.add(mycur.getString(Browser.HISTORY_PROJECTION_URL_INDEX));
     count--;
     mycur.moveToNext();
  }//End of while loop
}//End of if block
if(array.size() > 0)
{       
  for (int i = 0; i < array.size(); i++) 
  {
    Log.e("result ", array.get(i));
  }
}

【问题讨论】:

    标签: java android browser


    【解决方案1】:

    要仅检索历史记录,不检索书签,请使用 0。

    来自Official Documentation

    指示项目是书签的标志。值 1 表示书签,值 0 表示历史项目。

    (强调我的)

    代码:

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        String[] proj = new String[] { Browser.BookmarkColumns.TITLE,
                Browser.BookmarkColumns.URL };
        String chnHistory = Browser.BookmarkColumns.BOOKMARK + " = 0"; // 0 = history,
        Cursor mycur = this.managedQuery(Browser.BOOKMARKS_URI, proj,
                chnHistory, null, null);
        this.startManagingCursor(mycur);
        mycur.moveToFirst();
    
        ArrayList<String> array = new ArrayList<String>();
        String title = "";
        String url = "";
    
        if (mycur.moveToFirst() && mycur.getCount() > 0) {
            while (!mycur.isAfterLast()) {
                title = mycur.getString(mycur
                        .getColumnIndex(Browser.BookmarkColumns.TITLE));
                url = mycur.getString(mycur
                        .getColumnIndex(Browser.BookmarkColumns.URL));
                array.add(title + " : " + url);
                mycur.moveToNext();
            }
        }
    
        if (array.size() > 0) {
            for (String string : array) {
                Log.d("result ", string);
            }
        }
    

    在 Manifest 文件中添加权限:

    <uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"/>
    

    【讨论】:

    • 不能从同一代码中获取所有浏览器的历史记录吗?
    • 权限和功能从 api 26 中移除。
    猜你喜欢
    • 2011-02-04
    • 2016-02-02
    • 1970-01-01
    • 1970-01-01
    • 2017-05-17
    • 1970-01-01
    • 2017-11-01
    • 2012-05-10
    • 2013-12-19
    相关资源
    最近更新 更多