搜尋是 Android 的核心使用者功能。無論內容位於裝置或網際網路上,使用者都必須能夠搜尋任何可用的資料。為了為使用者提供一致的搜尋體驗,Android 提供搜尋架構,可協助您實作應用程式的搜尋功能。
![](https://developer.android.google.cn/static/images/search/search-suggest-custom.png?authuser=1&hl=zh-tw)
圖 1 含有自訂搜尋建議的搜尋對話方塊。
搜尋架構提供兩種搜尋輸入模式:畫面頂端的搜尋對話方塊,或是可嵌入活動版面配置的搜尋小工具 (SearchView
)。無論是哪一種情況,Android 系統都會向執行搜尋的特定活動提供搜尋查詢,協助您實作搜尋。您也可以啟用搜尋對話方塊或小工具,在使用者輸入內容時提供搜尋建議。圖 1 為包含選用搜尋建議的搜尋對話方塊範例。
設定搜尋對話方塊或搜尋小工具後,您可以執行下列操作:
- 啟用語音搜尋。
- 根據最近的使用者查詢內容提供搜尋建議。
- 提供符合應用程式資料中實際結果的自訂搜尋建議。
- 在系統層級的快速搜尋框中提供應用程式搜尋建議。
注意:搜尋架構「不會」提供用於搜尋資料的 API。如要執行搜尋,您必須使用適用於資料的 API。舉例來說,如果資料儲存在 SQLite 資料庫中,請使用 android.database.sqlite
API 執行搜尋。
此外,我們無法保證裝置提供專屬的「搜尋」按鈕,可叫用應用程式中的搜尋介面。使用搜尋對話方塊或自訂介面時,您必須在 UI 中提供啟用搜尋介面的搜尋按鈕。詳情請參閱「叫用搜尋對話方塊」。
以下網頁將說明如何使用 Android 的架構實作搜尋:
- 建立搜尋介面
- 如何設定應用程式以使用搜尋對話方塊或搜尋小工具。
- 新增近期查詢建議
- 如何根據先前使用的查詢提供建議。
- 新增自訂建議
- 如何根據應用程式的自訂資料提供建議,並在全系統的快速搜尋框中提供這些建議。
- 可供搜尋的設定
- 可供搜尋的設定檔參考文件。其他文件也會以特定行為討論設定檔。
保護使用者隱私
在應用程式中實作搜尋功能時,請採取相關步驟保護使用者的隱私權。許多使用者會將手機上的活動 (包括搜尋內容) 視為私人資訊。為保護使用者隱私,請務必遵守下列原則:
- 不要將個人資訊傳送至伺服器‐如果必須,切勿將個人資訊記錄下來。
「個人資訊」是用來識別使用者身分的任何資訊,例如姓名、電子郵件地址、帳單資訊,或是可合理連結至這類資訊的其他資料。如果您的應用程式透過伺服器協助實作搜尋,請避免在搜尋查詢中傳送個人資訊。舉例來說,如果您要搜尋郵遞區號附近的商家,也不需要傳送使用者 ID;只要傳送郵遞區號至伺服器即可。如果您必須傳送個人資訊,請避免記錄這些資訊。如果必須記錄資料,請妥善保護資料並盡快清除。
- 為使用者提供清除搜尋記錄的方式。
搜尋架構可協助您的應用程式在使用者類型時提供特定情境的建議。有時候,這些建議是基於使用者在先前工作階段中搜尋的內容,或是使用者採取的其他動作產生。使用者可能不希望向其他裝置的使用者顯示先前的搜尋記錄。如果您的應用程式提供建議,可用於顯示先前的搜尋活動,請實作使用者清除搜尋記錄的方式。如果您使用的是
SearchRecentSuggestions
,可以呼叫clearHistory()
方法。如要實作自訂建議,您需要在內容供應器中提供類似的「清除記錄」方法,以供使用者執行。