사용자가 Android에서 열어 본 웹 사이트를 모니터/필터링하고 싶습니다.Android에서 웹 모니터 개발
내가 브라우저 기록에 ContentObserver를 사용하여 (안드로이드 기본 브라우저에서) 마지막 방문 URL을 검색하는 방법을 알고...
private static class BrowserObserver extends ContentObserver {
private static String lastVisitedURL = "";
private static String lastVisitedWebsite = "";
//Query values:
final String[] projection = new String[] { Browser.BookmarkColumns.URL }; // URLs
final String selection = Browser.BookmarkColumns.BOOKMARK + " = 0"; // history item
final String sortOrder = Browser.BookmarkColumns.DATE; // the date the item was last visited
public BrowserObserver(Handler handler) {
super(handler);
}
@Override
public void onChange(boolean selfChange) {
onChange(selfChange, null);
}
@Override
public void onChange(boolean selfChange, Uri uri) {
super.onChange(selfChange);
//Retrieve all the visited URLs:
final Cursor cursor = getContentResolver().query(Browser.BOOKMARKS_URI, projection, selection, null, sortOrder);
//Retrieve the last URL:
cursor.moveToLast();
final String url = cursor.getString(cursor.getColumnIndex(projection[0]));
//Close the cursor:
cursor.close();
if (!url.equals(lastVisitedURL)) { // to avoid information retrieval and/or refreshing...
lastVisitedURL = url;
//Debug:
Log.d(TAG, "URL Visited: " + url + "\n");
}
}
}
내가 사용하는 ContentObserver 등록하려면 :
browserObserver = new BrowserObserver(new Handler());
getContentResolver().registerContentObserver(Browser.BOOKMARKS_URI, true, browserObserver);
을 등록을 취소하려면 :
getContentResolver().unregisterContentObserver(browserObserver);
이것은 작동합니다. 그러나 이러한 방식으로 브라우저를로드 한 후에 만 URL을 분석 할 수 있습니다.
브라우저가 실제로 Android에서로드하기 전에 URL을 검색하는 방법이 있습니까?
음 .. 왜 -1일까요?! –