2012-02-01 47 views
3

我想開發一個應用程序(或服務),它會計算我打開http://www.google.com url的次數。但我不知道這是可能的與Android。是否可以計算我打開谷歌的次數?

我想在這個領域做一個研究,但我不知道如何開始。據我所知,當瀏覽器中的某個uri被調用時,沒有任何意圖被解僱,但我想有這樣的方法可以做到這一點。我不指望簡單,但我希望這是可能的。我希望有一些應用程序可以測量網絡流量,這意味着所有事情都可以被跟蹤。

回答

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

相關問題