我需要保存用戶上次訪問的網頁。 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。
- 什麼是搜索瀏覽器歷史的其他「流行」源代碼?我寧願儘可能地做到這一點。