將 Android 搜尋功能整合至您的應用程式

搜尋是 Android 的核心使用者功能。無論內容位於裝置或網際網路上,使用者都必須能夠搜尋任何可用的資料。為了為使用者提供一致的搜尋體驗,Android 提供搜尋架構,可協助您實作應用程式的搜尋功能。

圖 1 含有自訂搜尋建議的搜尋對話方塊。

搜尋架構提供兩種搜尋輸入模式:畫面頂端的搜尋對話方塊,或是可嵌入活動版面配置的搜尋小工具 (SearchView)。無論是哪一種情況,Android 系統都會向執行搜尋的特定活動提供搜尋查詢,協助您實作搜尋。您也可以啟用搜尋對話方塊或小工具,在使用者輸入內容時提供搜尋建議。圖 1 為包含選用搜尋建議的搜尋對話方塊範例。

設定搜尋對話方塊或搜尋小工具後,您可以執行下列操作:

  • 啟用語音搜尋。
  • 根據最近的使用者查詢內容提供搜尋建議。
  • 提供符合應用程式資料中實際結果的自訂搜尋建議。
  • 在系統層級的快速搜尋框中提供應用程式搜尋建議。

注意:搜尋架構「不會」提供用於搜尋資料的 API。如要執行搜尋,您必須使用適用於資料的 API。舉例來說,如果資料儲存在 SQLite 資料庫中,請使用 android.database.sqlite API 執行搜尋。

此外,我們無法保證裝置提供專屬的「搜尋」按鈕,可叫用應用程式中的搜尋介面。使用搜尋對話方塊或自訂介面時,您必須在 UI 中提供啟用搜尋介面的搜尋按鈕。詳情請參閱「叫用搜尋對話方塊」。

以下網頁將說明如何使用 Android 的架構實作搜尋:

建立搜尋介面
如何設定應用程式以使用搜尋對話方塊或搜尋小工具。
新增近期查詢建議
如何根據先前使用的查詢提供建議。
新增自訂建議
如何根據應用程式的自訂資料提供建議,並在全系統的快速搜尋框中提供這些建議。
可供搜尋的設定
可供搜尋的設定檔參考文件。其他文件也會以特定行為討論設定檔。

保護使用者隱私

在應用程式中實作搜尋功能時,請採取相關步驟保護使用者的隱私權。許多使用者會將手機上的活動 (包括搜尋內容) 視為私人資訊。為保護使用者隱私,請務必遵守下列原則:

  • 不要將個人資訊傳送至伺服器‐如果必須,切勿將個人資訊記錄下來。

    「個人資訊」是用來識別使用者身分的任何資訊,例如姓名、電子郵件地址、帳單資訊,或是可合理連結至這類資訊的其他資料。如果您的應用程式透過伺服器協助實作搜尋,請避免在搜尋查詢中傳送個人資訊。舉例來說,如果您要搜尋郵遞區號附近的商家,也不需要傳送使用者 ID;只要傳送郵遞區號至伺服器即可。如果您必須傳送個人資訊,請避免記錄這些資訊。如果必須記錄資料,請妥善保護資料並盡快清除。

  • 為使用者提供清除搜尋記錄的方式。

    搜尋架構可協助您的應用程式在使用者類型時提供特定情境的建議。有時候,這些建議是基於使用者在先前工作階段中搜尋的內容,或是使用者採取的其他動作產生。使用者可能不希望向其他裝置的使用者顯示先前的搜尋記錄。如果您的應用程式提供建議,可用於顯示先前的搜尋活動,請實作使用者清除搜尋記錄的方式。如果您使用的是 SearchRecentSuggestions,可以呼叫 clearHistory() 方法。如要實作自訂建議,您需要在內容供應器中提供類似的「清除記錄」方法,以供使用者執行。