Ophone提供了一套搜尋本機數據的API,通過這套API可以模糊查找包含指定關鍵字的信息.這些信息可能來自不同的地方,例如,聯繫人,備份,瀏覽器書籤等.搜尋結果以Cursor對象的形式返回.實際上,這套API使用在6.6節介紹的ContentProvider技術進行搜尋,代碼如下:
Cursor cursor = getContentResolver().query(
Uri.parse(oms.servo.search.SearchProvider.CONTENT_URI),null,word,null,null);
其中word是String類型的變數,表示搜尋關鍵字.在獲得搜尋結果(Cursor對象)後,可以使用下面的代碼輸出結果信息.
while(cursor.moveToNext())
{
textView.append("\n\nITEM" + cursor.getPosition()+"\n");
Bundle extras = new Bundle();
extras = cursor.respond(extras);
showField(extras,SearchProvider.FIELD_ID);
showField(extras,SearchProvider.FIELD_TITLE);
showField(extras,SearchProvider.FIELD_TIME);
showField(extras,SearchProvider.FIELD_MIME);
showField(extras,SearchProvider.FIELD_CONTACTS_NAME);
showField(extras,SearchProvider.FIELD_EMAIL_SENDER);
showField(extras,SearchProvider.FIELD_EMAIL_RECEIVER);
showField(extras,SearchProvider.FIELD_EMAIL_SUBJECT);
showField(extras,SearchProvider.FIELD_SMS_SENDER);
showField(extras,SearchProvider.FIELD_MMS_RECEIVER);
showField(extras,SearchProvider.FIELD_FILE_SIZE);
showField(extras,SearchProvider.FIELD_CALL_NAME);
showField(extras,SearchProvider.FIELD_CALL_DURATION);
showField(extras,SearchProvider.FIELD_CALL_TYPE);
}
其中showField方法用於顯示具體的結果信息,代碼如下:
private void showField(Bundle extras,String field)
{
String value =extras.getString(field);
if(value != null)
textView.append("\n" + field +"," +value);
}