我想开发一个应用程序(或服务)来计算我打开http://www.google.com
网址的次数。但我不知道Android是否可行。
我想对这个领域进行研究,但我不知道如何开始。到目前为止,当浏览器中的某些uri被选中时,没有意图被触发,但我想有这样的方法可以做到这一点。我不希望简单,但我希望它是可能的。我希望有些应用程序可以测量网络流量,这意味着一切都以某种方式被跟踪。
答案 0 :(得分:5)
这不能保证适用于所有类型的Android,但根据文档,您可以阅读浏览器数据库。
浏览器是一个静态助手,提供对书签数据库的访问,并且可以根据您的要求,通过名为getAllVisitedUrls的方法公开浏览器历史记录。
Cursor cursor=Browser.getAllVisitedUrls(getContentResolver());
cursor.moveToFirst();
int occasions=0;
while (cursor.moveToNext()) {
String urlVisited=cursor.getString(cursor.getColumnIndex(BookmarkColumns.URL));
if (urlVisited.contains("www.google.")) {
occasions++;
}
Log.d("History",cursor.getString(cursor.getColumnIndex(BookmarkColumns.URL)));
}
Log.d("History","occasions="+occasions);
编辑:很抱歉在接受答案后更新此内容,但与我最初编写的内容相反,您确实可以注册以收听对书签URI的更改:
getContentResolver().registerContentObserver(Browser.BOOKMARKS_URI, true,
new ContentObserver(new Handler()) {
@Override
public void onChange(boolean selfChange) {
Log.d("History","Bookmarks has changed");
super.onChange(selfChange);
}
});
我希望这有用。
编辑:我忽略了你需要为你的清单添加一个权限:com.android.browser.permission.READ_HISTORY_BOOKMARKS