是否有可能计算我打开谷歌的次数?

时间:2012-02-01 14:42:38

标签: android browser

我想开发一个应用程序(或服务)来计算我打开http://www.google.com网址的次数。但我不知道Android是否可行。

我想对这个领域进行研究,但我不知道如何开始。到目前为止,当浏览器中的某些uri被选中时,没有意图被触发,但我想有这样的方法可以做到这一点。我不希望简单,但我希望它是可能的。我希望有些应用程序可以测量网络流量,这意味着一切都以某种方式被跟踪。

1 个答案:

答案 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