검색 구성

Android 시스템의 도움을 받아 검색을 구현(즉, 검색 제공) 추천 검색어 기능을 제공할 수 있습니다. 애플리케이션에서는 구성을 정의합니다

이 페이지에서는 검색 구성 파일의 구문과 사용법을 설명합니다. 자세한 내용은 애플리케이션에 검색 기능을 구현하는 방법에 대한 자세한 내용은 검색 인터페이스를 만듭니다.

파일 위치:
res/xml/filename.xml
Android는 파일 이름을 리소스 ID로 사용합니다.
문법:
<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
    android:label="string resource"
    android:hint="string resource"
    android:searchMode=["queryRewriteFromData" | "queryRewriteFromText"]
    android:searchButtonText="string resource"
    android:inputType="inputType"
    android:imeOptions="imeOptions"
    android:searchSuggestAuthority="string"
    android:searchSuggestPath="string"
    android:searchSuggestSelection="string"
    android:searchSuggestIntentAction="string"
    android:searchSuggestIntentData="string"
    android:searchSuggestThreshold="int"
    android:includeInGlobalSearch=["true" | "false"]
    android:searchSettingsDescription="string resource"
    android:queryAfterZeroResults=["true" | "false"]
    android:voiceSearchMode=["showVoiceSearchButton" | "launchWebSearch" | "launchRecognizer"]
    android:voiceLanguageModel=["free-form" | "web_search"]
    android:voicePromptText="string resource"
    android:voiceLanguage="string"
    android:voiceMaxResults="int"
    >
    <actionkey
        android:keycode="KEYCODE"
        android:queryActionMsg="string"
        android:suggestActionMsg="string"
        android:suggestActionMsgColumn="string" />
</searchable>
요소:
<searchable>
지원 검색을 제공하기 위해 Android 시스템에서 사용하는 모든 검색 구성을 정의합니다.

속성:

android:label
문자열 리소스. (필수) 애플리케이션의 이름입니다. 이 값은 android:label 속성에 적용된 이름 <activity> 또는 <application> 매니페스트 요소의 하위 항목으로 포함되어 있습니다. 이 라벨은 android:includeInGlobalSearch에서 "true"로, 이 경우에 이 라벨이 사용됩니다. 시스템의 검색 설정에서 애플리케이션을 검색 가능한 항목으로 식별합니다.
android:hint
문자열 리소스. (추천) 검색 텍스트 입력란에 표시할 텍스트입니다. 텍스트가 입력되지 않습니다. 사용자에게 검색 가능한 콘텐츠에 대한 힌트를 제공합니다. 일관성 유지 다른 Android 애플리케이션과 함께 android:hint의 문자열 형식을 'Search'로 지정하세요. <content-or-product>'). 예: "노래 및 아티스트 검색" 또는 'YouTube 검색'을 클릭합니다.
android:searchMode
키워드. 검색 표시를 제어하는 추가 모드를 설정합니다. 사용 가능 모드는 맞춤 추천 검색어가 수신될 때 쿼리 텍스트를 재작성하는 방법을 정의합니다. 집중하세요. 허용되는 모드 값은 다음과 같습니다.
설명
"queryRewriteFromData" SUGGEST_COLUMN_INTENT_DATA 열을 사용하여 쿼리 텍스트를 다시 작성합니다. 이 필드는 SUGGEST_COLUMN_INTENT_DATA는 사용자 검사 및 수정에 적합합니다. API에 액세스할 수 있습니다
"queryRewriteFromText" SUGGEST_COLUMN_TEXT_1 를 사용하여 쿼리 텍스트를 다시 작성합니다.

자세한 내용은 맞춤 추천 검색어를 추가합니다.

android:searchButtonText
문자열 리소스. 검색을 실행하는 버튼에 표시할 텍스트입니다. 작성자: 기본적으로 버튼은 검색 아이콘 (돋보기)을 표시하며, 이는 있습니다. 따라서 동작이 웹 브라우저에서의 URL 요청과 같이 검색이 아닌 무언가를 요청할 수 있습니다.
android:inputType
키워드. 사용할 입력 방법의 유형(예: 소프트 입력 모드)을 정의합니다. 사용할 수 있습니다. 자유 형식 텍스트가 예상되는 대부분의 검색에는 이 속성이 필요하지 않습니다. 목록은 inputType를 참고하세요. 이 속성에 적합한 값입니다.
android:imeOptions
키워드. 입력 방법을 위한 추가 옵션을 제공합니다. 대부분의 검색에는 어떤 자유 형식 텍스트가 예상되는 경우에는 이 속성이 필요하지 않습니다. 기본 IME는 actionSearch는 캐리지 리턴 대신 제공합니다. imeOptions를 참고하세요. 이 속성에 적합한 값 목록을 확인하세요.

추천 검색어 속성

추천 검색어를 생성하기 위해 콘텐츠 제공자를 정의하는 경우 콘텐츠 제공자와의 통신을 구성하는 추가 속성입니다. 검색을 제공할 때 다음 <searchable> 속성 중 일부가 필요합니다.


android:searchSuggestAuthority
문자열. (추천 검색어를 제공하기 위해 필요) 이 값은 android:authorities에 제공된 권한 문자열 속성(Android 매니페스트 <provider> 요소)을 정의하세요.
android:searchSuggestPath
문자열. 이 경로는 추천 항목의 일부로 사용됩니다. 쿼리 Uri의 경우 프리픽스 및 권한의 앞, 뒤에 배치되도록 하세요. 이 작업은 다른 콘텐츠 제공자의 제안 형식(예: 데이터 유형 — 데이터를 수신할 때 추천 쿼리를 구별할 방법이 있습니다.
android:searchSuggestSelection
문자열. 이 값은 쿼리 함수를 selection 매개변수로 사용합니다. 일반적으로 WHERE 절임 을 사용해야 하며, 하나의 물음표를 사용자가 입력한 실제 쿼리 문자열입니다(예: "query=?"). 하지만 또한 null이 아닌 값을 사용하여 selectionArgs 매개변수를 설정한 다음 selection 매개변수를 무시하세요.
android:searchSuggestIntentAction
문자열. 사용자가 맞춤 추천 검색어(예: "android.intent.action.VIEW") 탭 이 값이 SUGGEST_COLUMN_INTENT_ACTION 열에서는 값이 사용자가 탭할 때 Intent 제안할 수 있습니다.
android:searchSuggestIntentData
문자열. 사용자가 맞춤 추천 검색어를 탭합니다. 선택한 제안이 재정의되지 않은 경우 SUGGEST_COLUMN_INTENT_DATA 열 — 이 값은 사용자가 탭할 때 Intent 제안할 수 있습니다.
android:searchSuggestThreshold
정수. 추천 조회를 트리거합니다. 이렇게 하면 시스템에서 최저치보다 짧은 기간에 대해서는 콘텐츠 제공자를 지정할 수 없습니다 기본값은 0입니다.

추천 검색어의 위 속성에 관한 자세한 내용은 문서를 참고하세요. 자세한 내용은 맞춤 추천 검색어 추가맞춤 추천 추가

빠른 검색창 속성

빠른 검색창에서 맞춤 추천 검색어를 사용할 수 있도록 하려면 다음 <searchable> 속성:


android:includeInGlobalSearch
부울. ( 빠른 검색창을 클릭합니다.) 추천을 받으려면 "true"로 설정하세요. 포함되어 있습니다. 사용자는 반드시 그 전에 시스템 검색 설정에서 애플리케이션을 검색 가능 항목으로 사용하도록 설정합니다. 추천 검색어가 빠른 검색창에 표시됩니다.
android:searchSettingsDescription
문자열 리소스. 추천 검색어에 대한 간략한 설명을 제공합니다. 빠른 검색창에 제공하면 해당 정보에 대한 검색 가능 항목에 애플리케이션입니다. 설명은 검색 가능한 콘텐츠를 간결하게 설명해야 합니다. 대상 예: '아티스트, 앨범, 트랙' 음악 애플리케이션 또는 '저장된 메모' 살펴보겠습니다.
android:queryAfterZeroResults
부울. 콘텐츠 제공업체가 다음과 같이 하려면 "true"로 설정합니다. 가 호출됩니다. 예를 들어 콘텐츠 제공자가 'bo'에 대해 0개의 결과를 반환하는 경우 'bob'에 대해 쿼리해야 합니다. 만약 "false"로 설정되면 단일 세션('bob')에서 상위 집합이 무시됩니다. 재쿼리를 호출하지 않습니다. 이 작업은 검색 대화상자의 수명 동안 또는 검색 위젯을 사용할 때의 활동을 나타냅니다. 검색 대화상자나 활동이 다시 열리면 'bo' 콘텐츠 제공자에 다시 쿼리합니다. 기본값은 false입니다.

음성 검색 속성

음성 검색을 사용하도록 설정하려면 다음 <searchable> 속성:


android:voiceSearchMode
키워드. (음성 검색 기능을 제공하기 위해 필요) 특정 모드로 음성 검색을 사용 설정합니다. 기기에서 음성 검색을 제공하지 않았을 수 있으며, 이 경우 다음과 같이 신고합니다. 아무런 영향을 미치지 않습니다. 허용되는 모드 값은 다음과 같습니다.
설명
"showVoiceSearchButton" 기기에서 음성 검색을 사용할 수 있는 경우 음성 검색 버튼을 표시합니다. 설정된 경우 "launchWebSearch" 또는 "launchRecognizer"도 설정해야 합니다. 파이프 (|) 문자로 구분합니다.
"launchWebSearch" 음성 검색 버튼을 누르면 사용자가 바로 웹 검색 활동에 전송할 수 있습니다. 대부분의 애플리케이션은 검색이 호출된 활동에서 사용자를 이동합니다.
"launchRecognizer" 음성 검색 버튼을 누르면 내장 음성 녹음 활동으로 바로 이동할 수 있습니다. 이 활동 사용자에게 말을 하고, 음성 텍스트를 텍스트로 변환하여 해당 텍스트를 검색 활동에 입력할 수 있습니다. 검색 UI를 표시하고 검색 버튼을 탭했습니다.
android:voiceLanguageModel
키워드. 언어 모델은 음성 인식 시스템에서 사용되어야 합니다. 허용되는 값은 다음과 같습니다.
설명
"free_form" 검색어를 음성기록하는 데 자유 형식의 음성 인식을 사용합니다. 이 기능은 주로 영어에 최적화되어 있습니다. 이는 기본값입니다.
"web_search" 검색어와 유사한 짧은 문구에 웹 검색 용어 인식을 사용합니다. 이것은 "free_form"보다 더 많은 언어로 사용할 수 있습니다.

자세한 내용은 자세한 내용은 EXTRA_LANGUAGE_MODEL입니다. 확인할 수 있습니다

android:voicePromptText
문자열 리소스. 음성 입력 대화상자에 표시할 추가 메시지입니다.
android:voiceLanguage
문자열. 예상되는 음성 언어로, Locale의 상수(예: 독일어는 "de", 프랑스어는 "fr"입니다. 이 속성은 Locale.getDefault()의 현재 값에서 가져옵니다.
android:voiceMaxResults
정수. 반환할 최대 결과 수를 설정합니다. '최고'라는 단어 포함 이 결과는 항상 ACTION_SEARCH 기본 쿼리로 지정됩니다. 1 이상이어야 합니다. 사용 EXTRA_RESULTS 인텐트에서 결과를 가져올 수 있습니다. 이 값이 제공되지 않으면 인식기가 반환할 결과 수를 선택합니다.
<actionkey>
검색 작업에 관한 기기 키 및 동작을 정의합니다. 검색 작업은 현재 검색어 또는 현재 쿼리 또는 선택된 특정 숫자에 따라 기기에서 버튼을 탭할 때의 동작 추천되지 않습니다. 예를 들어 연락처 애플리케이션은 전화를 시작하기 위한 검색 작업을 제공합니다. '통화' 버튼을 탭하면 현재 포커스가 맞춰진 추천 연락처로 전화를 겁니다.

모든 기기에서 모든 작업 키를 사용할 수 있는 것은 아니며, 이에서 모든 키를 재정의할 수 있는 것은 아닙니다. 있습니다. 예를 들어 '홈'은 키는 재정의할 수 없으며 항상 홈으로 돌아가야 합니다. 화면 또한 검색어를 입력하는 데 필요한 키에 작업 키를 정의해서는 안 됩니다. 쿼리합니다. 이렇게 하면 사용할 수 있고 합리적인 작업 키가 통화 버튼과 메뉴로 제한됩니다. 버튼을 클릭합니다.

<ph type="x-smartling-placeholder">

android:keycode를 정의하여 키와 나머지 세 개의 속성을 사용하여 검색 작업을 정의합니다.

속성:

android:keycode
문자열. (필수) 키 코드 KeyEvent는 다음을 나타냅니다. 응답하려는 작업 키(예: "KEYCODE_CALL") 이 가 ACTION_SEARCH 인텐트를 검색합니다. 키 코드를 검사하려면 다음을 사용하세요. getIntExtra(SearchManager.ACTION_KEY) 대부분의 키는 입력에 사용되므로 검색 작업에는 일부 키가 지원되지 않습니다. 탐색 또는 시스템 기능입니다.
android:queryActionMsg
문자열. 키를 누른 상태에서 작업 키를 누르면 전송할 사용자가 쿼리 텍스트를 입력하고 있습니다. 이것은 ACTION_SEARCH 인텐트를 포함해야 합니다. 문자열을 검사하려면 getStringExtra(SearchManager.ACTION_MSG)
android:suggestActionMsg
문자열. 키를 누른 상태에서 작업 키를 누르면 전송될 작업 메시지입니다. 제안에 포커스가 있습니다. 이는 시스템이 검색 가능 활동—추천 검색어에 대해 정의한 작업 사용 이 문자열의 경우 getStringExtra(SearchManager.ACTION_MSG) 모든 추천에서 이 작업 키를 지원하는 경우에만 사용해야 합니다. 전체가 아닌 경우 추천은 동일한 작업 키를 처리할 수 있으므로 대신 다음을 사용해야 합니다. android:suggestActionMsgColumn 속성
android:suggestActionMsgColumn
문자열. 콘텐츠 제공자에서 이 작업 키에 대한 작업 메시지로, 사용자가 작업 키를 누르면 전송됩니다. 표시됩니다. 이 속성을 사용하면 이는 android:suggestActionMsg 속성을 사용하여 모든 항목의 작업 메시지를 정의합니다. 콘텐츠 제공자의 각 항목은 자체적인 작업 메시지를 제공합니다.

먼저 콘텐츠 제공자에 각 추천 검색어에 대한 열을 정의해야 합니다. 이 속성에 해당 열의 이름을 제공합니다. 시스템 추천 커서를 보고 여기에 제공된 문자열을 사용하여 작업을 선택합니다. message 열을 클릭한 다음 커서에서 작업 메시지 문자열을 선택합니다. 해당 문자열은 가 검색 활동에 전달하는 인텐트에 추가됩니다. 정의할 수 있습니다 문자열을 검사하려면 getStringExtra(SearchManager.ACTION_MSG) 선택한 추천 검색어의 데이터가 존재하지 않는 경우 작업 키는 무시됩니다.

예:
res/xml/searchable.xml에 저장된 XML 파일:
<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
    android:label="@string/search_label"
    android:hint="@string/search_hint"
    android:searchSuggestAuthority="dictionary"
    android:searchSuggestIntentAction="android.intent.action.VIEW"
    android:includeInGlobalSearch="true"
    android:searchSettingsDescription="@string/settings_description" >
</searchable>