我需要保存用户上次访问的网页。 Evevery可以正常使用我的Galaxy S4(5.0.1)和Chrome浏览器。Android浏览器历史记录URI?
但是,在某些手机上我没有得到任何结果或混合结果。从我收集的信息来看,最大的问题是浏览器URI本身。一些手机使用Chrome作为他们的主要浏览器,一些使用其他的手机。
我有三个来源: content://com.android.chrome.browser/bookmarks
content://com.sec.android.app.sbrowser/bookmarks
Browser.BOOKMARKS_URI
所以现在我的工作是这样的:
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
h.removeCallbacks(this);
h.postDelayed(this, 500);
}
public void run() {
String[] proj = new String[] { Browser.BookmarkColumns.TITLE, Browser.BookmarkColumns.URL,Browser.BookmarkColumns.DATE };
String selection = Browser.BookmarkColumns.BOOKMARK + " = 0"; // 0 = history, 1 = bookmark
Cursor mCur = null;
try {
mCur = contentResolver.query(getURI(), proj, selection, null, null);
if(mCur != null && mCur.moveToLast()){
String title = "";
String url = "";
title = mCur.getString(mCur.getColumnIndex(Browser.BookmarkColumns.TITLE));
url = mCur.getString(mCur.getColumnIndex(Browser.BookmarkColumns.URL));
...
}
} catch (Exception e){
...
} finally {
if(mCur != null)
mCur.close();
}
}
private Uri getURI(){
Uri uri = Uri.parse("content://com.android.chrome.browser/bookmarks");
return uri;
}
- 磨是提供正确的URI的最好方法? onChange在浏览器历史记录上作为内容观察者触发。
所以用户可以在Chrome上浏览互联网,我仍然可以从ASOP浏览器获得历史结果。 当我直接观察chrome时,在某些电话上,我得到了failed to find provider info
,因为没有安装chrome。
- 什么是搜索浏览器历史的其他“流行”源代码?我宁愿尽可能地做到这一点。