2013-04-10 140 views
0

我可以使用下面的方法來查看Android的瀏覽器歷史記錄:查詢Android瀏覽器歷史記錄的網址

import android.app.Activity; 
import android.database.Cursor; 
import android.os.Bundle; 
import android.provider.Browser; 
import android.widget.TextView; 

public class ReadHistoryDetails extends Activity { 

@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 
TextView tv = (TextView) findViewById(R.id.hello); 
String[] projection = new String[] { Browser.BookmarkColumns.TITLE, 
Browser.BookmarkColumns.URL }; 
Cursor mCur = managedQuery(android.provider.Browser.BOOKMARKS_URI, 
projection, null, null, null); 
mCur.moveToFirst(); 
int titleIdx = mCur.getColumnIndex(Browser.BookmarkColumns.TITLE); 
int urlIdx = mCur.getColumnIndex(Browser.BookmarkColumns.URL); 
while (mCur.isAfterLast() == false) { 
tv.append("\n" + mCur.getString(titleIdx)); 
tv.append("\n" + mCur.getString(urlIdx)); 
mCur.moveToNext(); 
} 
} 

不過,我想搜索的瀏覽器歷史記錄,如果搜索執行新意圖匹配我的預定義標準之一。

比方說,我想查詢瀏覽器歷史記錄包含任何playboy.com

我相信我會用一些諸如:

public class ReadHistoryDetails extends Activity { 
{ 
TextView tv = (TextView)findViewById(R.id.hello); 
String[] projection = new String[] { Browser.BookmarkColumns.TITLE, 
Browser.BookmarkColumns.URL }; 

Cursor cursor = managedQuery(android.provider.Browser.BOOKMARKS_URI, 
projection, null, null, null); 
String urls = ""; 
if (cursor.moveToFirst()) { 
String url1 = null; 
String url2 = null; 
do { 
urls = urls 
+ cursor.getString(cursor.getColumnIndex(Browser.BookmarkColumns.TITLE)) + " : " 
+ cursor.getString(cursor.getColumnIndex(Browser.BookmarkColumns.URL)) + "\n"; 
} while (cursor.moveToNext()); 
tv.setText(urls); 
} 

但我發現了一個錯誤,說明setText(String) is undefined for the type String ....,如以及由於此格式不正確的代碼導致搜索結果不足。

+0

是否局部變量'urls'掩蓋一些成員? – etienne 2013-04-10 16:19:46

+0

不,我只需要找出一種方法來查詢瀏覽器歷史記錄中的網址 - 就是這樣。 – 2013-04-10 18:02:39

+0

我真的需要這方面的幫助......任何人都可以提供任何建議嗎? – 2013-04-10 18:57:20

回答

1

一個天真的實現:

Cursor cursor = managedQuery(android.provider.Browser.BOOKMARKS_URI, 
          projection, null, null, null); 
String urls = ""; 
if (cursor.moveToFirst()) { 
    String url1 = null; 
    String url2 = null; 
    do { 
     // Just check if the url contains www.playboy.com 
     String url = cursor.getString(cursor.getColumnIndex(Browser.BookmarkColumns.URL)); 
     if (url.toLowerCase().contains("www.playboy.com")) { 
     urls = urls 
      + cursor.getString(cursor.getColumnIndex(Browser.BookmarkColumns.TITLE)) + " : " 
      + url + "\n"; 
     } 
    } while (cursor.moveToNext()); 
tv.setText(urls); 
} 

更優化的實施將包括直接在查詢過濾器:

Cursor cursor = managedQuery(android.provider.Browser.BOOKMARKS_URI, 
          projection, Browser.BookmarkColumns.URL + " LIKE '%playboy.com%'" , null, null); 
相關問題