2012-01-03 44 views
2

作爲一個大學項目,我必須創建一個Android應用程序來搜索設備中存儲的短信。例如。如果輸入「hi」,則所有包含單詞「hi」的消息都顯示在屏幕上。 我知道這在新的Android版本中是可以直接使用的,但現在我無法更改主題,我將創建這樣的應用程序,並在2012年1月的第1周完成!使用Android搜索界面搜索存儲的短信

我已經搜索谷歌和發現2種方式: -

  1. 使用Mobdev Wiki Tutorial和搜索的消息,這是複雜的,我還沒有用於編程數據庫,所以它是相當新我。

  2. 使用Android Search Interface直接使用Android的搜索用戶界面,讓我的工作更輕鬆簡單。

我需要關於哪種方法適合以及有哪些其他選項可用的建議。 SMS數據庫如何鏈接到Android搜索界面並在屏幕上正確顯示消息。期待您的建議和答案,如果您沒有時間,請至少提供有關上述問題的有用資源的鏈接!

+0

首先你應該瞭解android平臺和內容提供商...... 2012年1月第一週...嗯,那麼你最近6個月做了什麼?祝你好運 – Selvin 2012-01-03 12:02:13

+0

@selvin我於2011年8月份開始閱讀[繁忙編碼器Android開發指南](http://commonsware.com/Android/)的前幾百頁,並瞭解該平臺並瞭解了使用XML和Java的Android,甚至可以自己創建一個小應用程序,然後我繼續他們的第二本書,Android編程教程,並從中做了很多章節,但可悲的是,沒有任何書有任何章節與我的相關有關存儲的短信息的問題,所以需要幫助解決這個特定的問題...... :-) – Paawan 2012-01-03 12:31:42

+0

所有你需要做的就是「詢問」短信ContentProvider關於這個消息......這個特殊的內容提供者只是抽象的底層SQLite數據庫與短信。 ..'context.getContentResolver()。query(smsUriInboxOrOutboxOrWhatever,new String [] {columns,to,show},SearchColumn +'LIKE?',new String [] {searchText},null)'...它將返回Cursor ...現在你必須顯示這個光標的所有數據.. – Selvin 2012-01-03 12:39:25

回答

0

使用Editbox和搜索按鈕作爲GUI。 以及在收件箱中搜索一個特定的詞的主要代碼::

static Uri uri ; 
Cursor c; 
uri = Uri.parse("content://sms/inbox"); 
c = getContentResolver().query(uri, null, null ,null, "date DESC"); 
startManagingCursor(c); 

String[] body = new String[c.getCount()]; 

if(c.moveToFirst()){ 
for(int i=0;i<c.getCount();i++){ 
    body[i]= c.getString(c.getColumnIndexOrThrow("body")); //.toString() 

    item = check(body[i]); 

    c.moveToNext(); 
} 
} 
c.close(); 

雖然檢查功能是::

public ArrayList<String> check(String str) 
{ 

    boolean fullContainsSub = str.toUpperCase().indexOf(content.toUpperCase()) != -1; 

    if(fullContainsSub) 
    { 
    itemList.add(str); 
    } 
    return itemList; 
} 

希望這會幫助別人!

+0

這裏item和itemList是ArrayList ... – 2012-09-29 10:36:30