맞춤 검색 추천 추가

Android 검색 대화상자 또는 검색 위젯을 사용할 때 맞춤 추천 검색어를 표시합니다. 예를 들어 앱이 사전인 경우 사전에서 사용자가 입력을 완료하기 전에 검색 필드에 입력된 텍스트와 일치 할 수 있습니다. 이러한 제안사항은 즉시 액세스할 수 있도록 하는 것이 매우 중요합니다. 그림 1은 검색 대화상자의 내용입니다.

맞춤 제안을 제공하면 이를 통해 시스템 전체의 빠른 검색창을 통해 있습니다.

맞춤 추천을 추가하기 전에 Android 검색 대화상자나 검색 위젯을 사용할 수 있습니다. 만들기 검색 인터페이스 콘텐츠 제공업체에서 사용할 수 있습니다.

기본 사항

그림 1. 검색 대화상자 스크린샷 맞춤 추천 검색어

사용자가 맞춤 추천을 선택하면 시스템에서 Intent(으)로 검색 가능 활동 일반 검색어와는 달리 ACTION_SEARCH 대신 <start> 토큰이나 핑을 사용하여 ACTION_VIEW 또는 다른 인텐트 작업도 수행할 수 있으며, 선택된 제안입니다. 사전 예시에서 사용자가 추천 단어를 사용하면 앱에서 즉시 해당 단어의 정의를 열 수 있습니다. 사전에서 일치 항목을 검색할 수 있습니다.

맞춤 추천을 제공하려면 다음 단계를 따르세요.

  • 다음에 설명된 대로 기본 검색 활동 구현 검색 인터페이스를 만듭니다.
  • 콘텐츠에 대한 정보로 검색 가능한 구성 수정 커스텀 제안을 제공하는 제공자입니다.
  • 다음과 같은 테이블을 만듭니다. SQLiteDatabase, 을 확인하고 필수 열로 표의 형식을 지정하세요.
  • 콘텐츠 제작 제공자를 만들고 추천 검색어 테이블에 액세스할 수 있습니다. provider의 속성을 지정해야 합니다.
  • 사용자가 선택 시 전송할 Intent 유형을 선언합니다. 데이터 추천을 포함합니다.

Android 시스템이 검색 대화상자를 표시하는 것처럼 추천 검색어 콘텐츠 제공자를 사용해야 하는 경우 제안을 가져옵니다. 읽기 콘텐츠 제공자 를 참조하세요.

시스템에서 활동이 검색 가능한 것으로 식별되고 사용자가 검색어를 입력하면 다음 절차가 진행됩니다 검색어:

  1. Google 시스템이 검색어 텍스트를 받아 콘텐츠를 관리하는 콘텐츠 제공업체에 쿼리를 있습니다.
  2. 콘텐츠 제공업체가 Cursor 검색어와 관련된 모든 추천 검색어를 가리키는 있습니다.
  3. 시스템에서 직접 제공한 제안 목록을 표시합니다. Cursor

맞춤 추천 검색어가 표시되면 다음과 같은 결과가 발생할 수 있습니다.

  • 사용자가 다른 문자를 입력하거나 어떤 식으로든 검색어를 변경하면 이전 단계가 반복되고 추천 목록이 그에 따라 업데이트됩니다.
  • 사용자가 검색을 실행하면 추천 검색어가 무시되고 일반 ACTION_SEARCH 인텐트를 처리하세요.
  • 사용자가 추천 검색어를 선택하면 검색 가능한 검색 도구로 인텐트가 전송됩니다. 앱이 열 수 있도록 맞춤 작업과 맞춤 데이터를 전송합니다. 표시됩니다.

검색 가능한 구성 수정

맞춤 추천 검색어 지원을 추가하려면 android:searchSuggestAuthority 속성을 검색 가능한 구성 파일에 있는 <searchable> 요소 다음과 같습니다.

<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
    android:label="@string/app_label"
    android:hint="@string/search_hint"
    android:searchSuggestAuthority="com.example.MyCustomSuggestionProvider">
</searchable>

인텐트 유형에 따라 추가 속성이 필요할 수도 있음 각 추천 검색어에 첨부하고 콘텐츠에 검색어를 지정하는 방법 제공업체 다른 선택적 속성은 다음에서 설명합니다. 섹션으로 이동합니다.

콘텐츠 제공자 만들기

맞춤 추천 검색어를 위한 콘텐츠 제공자를 만들려면 먼저 콘텐츠 제공자 를 참조하세요. 맞춤 서비스를 위한 콘텐츠 제공자 추천은 다른 콘텐츠 제공자와 유사합니다. 그러나 각 Cursor의 각 행은 다음 조건을 충족해야 합니다. 시스템이 이해하고 사용하는 특정 열을 포함하여 있습니다.

사용자가 검색 대화상자나 검색 위젯에 텍스트를 입력하면 시스템은 다음을 호출하여 콘텐츠 제공자에 추천 쿼리를 쿼리합니다. query() 문자를 입력할 때마다 query() 구현에서 콘텐츠 제공자는 추천 데이터를 검색하고 양호하다고 판단하는 행을 가리키는 Cursor 있습니다.

맞춤 추천을 위한 콘텐츠 제공자 생성에 관한 세부정보는 다음과 같습니다. 다음 두 섹션에서 설명합니다.

추천 쿼리 처리
시스템이 콘텐츠 제공자에 요청을 보내는 방법 및 있습니다.
추천 검색어 표 만들기
시스템이 예상하는 열을 정의하는 방법 쿼리마다 Cursor가 반환되었습니다.

추천 쿼리 처리

시스템이 콘텐츠 제공자에 제안을 요청하면 콘텐츠 제공업체의 query() 메서드를 호출하면 됩니다. 이 메서드를 구현하여 추천 데이터를 검색하고 Cursor 제안할 수 있습니다.

다음은 시스템이 query() 메서드를 순서대로 나열합니다.

  1. uri

    항상 콘텐츠 Uri, 형식 다음과 같습니다.

    content://your.authority/optional.suggest.path/SUGGEST_URI_PATH_QUERY
    

    기본 동작은 시스템이 이 URI를 전달하고 쿼리를 다음 텍스트를 추가합니다.

    content://your.authority/optional.suggest.path/SUGGEST_URI_PATH_QUERY/puppies
    

    끝의 쿼리 텍스트는 URI 인코딩 규칙을 사용하여 인코딩되므로 디코딩해야 합니다.

    optional.suggest.path 부분은 검색 가능한 구성 파일에 android:searchSuggestPath 속성 필요한 경우에만 여러 검색 활동에 동일한 콘텐츠 제공자를 사용하는 경우 만약 이 경우에는 추천 쿼리의 소스를 구별합니다.

    <ph type="x-smartling-placeholder">
  2. projection
    항상 null입니다.
  3. selection
    android:searchSuggestSelection에 제공된 값입니다. 속성, 또는 null을 반환할 수 있습니다. android:searchSuggestSelection 속성을 선언합니다. 이 다음 섹션에서 자세히 설명합니다.
  4. selectionArgs
    다음의 경우 검색어를 배열의 첫 번째이자 유일한 요소로 포함합니다. android:searchSuggestSelection 속성을 구성하겠습니다 선언하지 않는 경우 android:searchSuggestSelection이면 이 매개변수는 null입니다. 다음 섹션에서는 이에 관해 자세히 설명합니다.
  5. sortOrder
    항상 null입니다.

시스템은 두 가지 방법으로 검색어 텍스트를 전송할 수 있습니다. 기본 방법은 다음과 같습니다. 전달된 콘텐츠 URI의 마지막 경로로 포함될 쿼리 텍스트가 uri 매개변수 그러나 검색 가능한 구성의 android:searchSuggestSelection 속성을 사용하면 쿼리 텍스트가 대신 selectionArgs 문자열 배열. 이 두 가지 옵션은 있습니다.

URI에서 쿼리 가져오기

기본적으로 쿼리는 uri의 마지막 세그먼트로 추가됩니다. 매개변수: Uri 객체입니다. 여기에서 쿼리 텍스트를 검색하려면 사용하여 getLastPathSegment(), 다음과 같습니다.

Kotlin

val query: String = uri.lastPathSegment.toLowerCase()

자바

String query = uri.getLastPathSegment().toLowerCase();

그러면 쿼리인 Uri의 마지막 세그먼트가 반환됩니다. 입력 텍스트입니다.

선택 인수에서 쿼리 가져오기

URI를 사용하는 대신 query() 메서드를 사용하여 조회할 경우 selectionselectionArgs 매개변수를 사용하여 적절한 값을 전달합니다. 이 이 경우 android:searchSuggestSelection 속성을 검색 가능한 구성을 생성할 수 있습니다. 선택 항목 문자열에 물음표 (?)를 검색 쿼리 시스템은 선택 문자열을 다음과 같이 사용하여 query()를 호출합니다. selection 매개변수 및 첫 번째 요소로서의 검색어 (selectionArgs 배열)

예를 들어, 다음과 같은 방법으로 전체 텍스트를 만들기 위한 android:searchSuggestSelection 속성 검색 구문:

<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
    android:label="@string/app_label"
    android:hint="@string/search_hint"
    android:searchSuggestAuthority="com.example.MyCustomSuggestionProvider"
    android:searchSuggestIntentAction="android.intent.action.VIEW"
    android:searchSuggestSelection="word MATCH ?">
</searchable>

이 구성을 사용하면 query() 메서드가 다음을 제공합니다. selection 매개변수를 "word MATCH ?"로 지정하고 selectionArgs 매개변수를 검색어로 사용하세요. 이러한 정보를 SQLite query() 메서드를 사용하여 각 인수는 즉, 물음표가 검색어 텍스트로 대체됩니다. 만약 이런 방식으로 추천 쿼리를 수신하므로 쿼리에 와일드 카드를 추가해야 함 selectionArgs 매개변수에 추가하거나 접두사를 사용하면 됩니다. 이 값은 따옴표로 묶여 물음표 대신 삽입됩니다.

앞의 예의 또 다른 속성은 android:searchSuggestIntentAction: 인텐트 작업을 정의합니다. 사용자가 추천을 선택하면 각 인텐트와 함께 전송됩니다. 이 내용은 다음에 대한 인텐트 선언하기 추천 섹션을 참조하세요.

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

추천 검색어 표 만들기

Cursor를 사용하여 시스템에 추천을 반환하면 시스템은 각 행의 특정 열을 예상합니다. 데이터를 저장하든 기기의 SQLite 데이터베이스, 웹의 데이터베이스에 있는 추천 데이터 서버, 기기 또는 웹의 다른 형식이 있으면 추천 검색어를 행 형식으로 지정하세요. Cursor를 사용하여 표시합니다.

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

시스템은 여러 열을 인식하지만 그중 필수 열은 두 개입니다.

_ID
각 추천 검색어의 고유한 정수 행 ID입니다. 시스템은 이를 위해 인코더-디코더 아키텍처를 ListView
SUGGEST_COLUMN_TEXT_1
추천 검색어로 표시되는 문자열입니다.

다음 열은 모두 선택사항입니다. 대부분은 참조하세요

SUGGEST_COLUMN_TEXT_2
문자열입니다. Cursor에 이 열이 포함되어 있으면 두 줄 형식으로 제공됩니다 이 열의 문자열은 기본 추천 텍스트 아래에 두 번째의 더 작은 텍스트 줄로 표시됩니다. 있습니다. null이거나 비어 있을 수 있으며 이 경우 보조 텍스트가 없음을 나타냅니다.
SUGGEST_COLUMN_ICON_1
드로어블 리소스, 콘텐츠, 파일 URI 문자열입니다. 만약 Cursor에 이 열이 포함되어 있으면 모든 추천이 제공됩니다. 왼쪽에는 드로어블 아이콘이 있고 아이콘과 텍스트 형식으로 바뀝니다. 이 null이거나 0일 수 있으며, 이는 이 행에 아이콘이 없음을 나타냅니다.
SUGGEST_COLUMN_ICON_2
드로어블 리소스, 콘텐츠, 파일 URI 문자열입니다. 만약 Cursor에 이 열이 포함되어 있으면 모든 추천이 제공됩니다. 아이콘과 텍스트 형식으로 변환되며, 오른쪽에 아이콘이 있습니다. 이는 null 또는 0은 이 행에 아이콘이 없음을 나타냅니다.
SUGGEST_COLUMN_INTENT_ACTION
인텐트 작업 문자열입니다. 이 열이 존재하고 제공된 행에서 여기에 정의된 작업은 추천의 인텐트를 지정할 수 있습니다. 요소가 제공되지 않으면 검색 가능한 항목의 android:searchSuggestIntentAction 입력란 구성할 수 있습니다 작업이 모든 추천 검색어에 동일한 경우 작업을 지정하는 것이 android:searchSuggestIntentAction하고 이 열을 생략합니다.
SUGGEST_COLUMN_INTENT_DATA
데이터 URI 문자열입니다. 이 열이 존재하고 지정된 행에서 이 데이터는 추천의 인텐트를 형성할 때 사용됩니다. 요소가 제공되지 않는 경우 검색 가능한 항목의 android:searchSuggestIntentData 입력란 구성할 수 있습니다 두 소스가 모두 제공되지 않으면 인텐트의 데이터 필드는 다음과 같습니다. null입니다. 모든 추천의 데이터가 동일한 경우, 또는 데이터를 설명할 수 있는 경우 상수 부분과 특정 ID를 사용하는 경우 이를 지정하는 것이 더 효율적입니다. android:searchSuggestIntentData를 사용하고 이를 생략합니다. 를 클릭합니다.
SUGGEST_COLUMN_INTENT_DATA_ID
URI 경로 문자열입니다. 이 열이 존재하고 지정된 행 다음에 '/' 이 값은 인텐트의 데이터 필드에 추가됩니다. 이 필드는 검색 가능한 항목의 android:searchSuggestIntentData 속성 구성이 이미 적절한 기본 문자열로 설정되어 있는지 확인합니다.
SUGGEST_COLUMN_INTENT_EXTRA_DATA
임의의 데이터입니다. 이 열이 존재하고 지정된 행에 값이 포함된 경우 추천의 인텐트를 만들 때 사용되는 추가 데이터입니다. 제공되지 않은 경우 인텐트의 추가 데이터 필드는 null입니다. 이 열을 사용하면 추천은 인텐트의 EXTRA_DATA_KEY 키를 누릅니다.
SUGGEST_COLUMN_QUERY
이 열이 있고 주어진 행에 이 요소가 있다면 추천 쿼리 작성 시 사용되는 데이터로, 기타 QUERY 키를 누릅니다. 추천의 작업이 ACTION_SEARCH인 경우에 필요합니다. 그 외의 경우에는 선택사항입니다.
SUGGEST_COLUMN_SHORTCUT_ID
빠른 검색창에 추천 검색어를 제공할 때만 사용됩니다. 이 열 는 추천 검색어를 단축어로 저장해야 하는지 여부를 나타냅니다. 확인해야 하는지 여부를 지정합니다. 바로가기는 일반적으로 사용자가 빠른 검색창의 추천 검색어 탭 누락된 경우 결과는 다음과 같이 저장됩니다. 새로고침되지 않습니다 설정된 경우 SUGGEST_NEVER_MAKE_SHORTCUT, 결과는 바로가기로 저장되지 않습니다. 그렇지 않으면 바로가기 ID가 다음 작업에 사용됩니다. 최신 추천을 보려면 SUGGEST_URI_PATH_SHORTCUT
SUGGEST_COLUMN_SPINNER_WHILE_REFRESHING
빠른 검색창에 추천 검색어를 제공할 때만 사용됩니다. 이 열 는 이 추천의 단축키는 SUGGEST_COLUMN_ICON_2이며 새로고침합니다.

이러한 열의 대부분은 다음 섹션에서 자세히 설명합니다.

추천 인텐트 선언

사용자가 검색 대화상자나 위젯에 추가하면 시스템에서 맞춤 Intent를 검색 가능 활동 인텐트의 작업과 데이터를 정의해야 합니다.

인텐트 작업 선언

맞춤 추천의 가장 일반적인 인텐트 작업은 다음과 같습니다. ACTION_VIEW은 항목을 열고 싶을 때 적합합니다. 단어의 정의, 그 사람의 연락처 정보, 웹 페이지 등입니다. 그러나 인텐트 작업은 다른 작업이 될 수 있으며 각각에 대해 다를 수 있습니다. 추천되지 않습니다.

모든 추천이 동일한 인텐트 작업을 사용하도록 할지 여부에 따라 다음 두 가지 방법으로 작업을 정의할 수 있습니다.

  • android:searchSuggestIntentAction 속성을 사용합니다. 검색 가능한 구성 파일을 사용하여 모든 추천에 대한 작업을 정의합니다. 다음 예에 나와 있습니다.
    <?xml version="1.0" encoding="utf-8"?>
    <searchable xmlns:android="http://schemas.android.com/apk/res/android"
        android:label="@string/app_label"
        android:hint="@string/search_hint"
        android:searchSuggestAuthority="com.example.MyCustomSuggestionProvider"
        android:searchSuggestIntentAction="android.intent.action.VIEW" >
    </searchable>
    
  • SUGGEST_COLUMN_INTENT_ACTION 열을 사용하여 작업을 실행할 수 있습니다. 이렇게 하려면 열을 추천 검색어 표에 SUGGEST_COLUMN_INTENT_ACTION개 추가 그리고 각 추천 검색어에 사용할 작업을 배치합니다(예: "android.intent.action.VIEW"입니다.

위의 두 기법을 결합할 수도 있습니다. 예를 들어 수행할 작업이 있는 android:searchSuggestIntentAction 속성 모든 추천과 함께 기본적으로 사용되어야 하며, 일부 사용자에 대해서는 에 다른 작업을 선언하여 SUGGEST_COLUMN_INTENT_ACTION 열 값을 포함하지 않는 경우 SUGGEST_COLUMN_INTENT_ACTION 열에 표시된 경우 인텐트는 android:searchSuggestIntentAction 속성에 제공된 있습니다.

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

인텐트 데이터 선언

사용자가 추천 검색어를 선택하면 검색 활동이 인텐트를 사용자가 정의한 작업으로 섹션에서 식별할 수 있습니다. 하지만 활동이 이를 식별할 수 있도록 인텐트에는 데이터도 포함되어야 합니다. 선택할 수 있습니다 특히 데이터는 고유해야 합니다. 를 사용합니다. 인텐트가 수신되면 getData() 또는 getDataString()입니다.

인텐트에 포함되는 데이터는 다음 두 가지 방법으로 정의할 수 있습니다.

  • 내부의 각 추천에 대한 데이터를 정의합니다. 추천 검색어 표의 SUGGEST_COLUMN_INTENT_DATA 열입니다.

    추천에서 각 인텐트에 필요한 모든 데이터 정보를 제공합니다. SUGGEST_COLUMN_INTENT_DATA 열과 그런 다음 각 행에 대한 고유 데이터로 채웁니다. 이 열의 데이터는 이 열에서 정의한 대로 정확히 인텐트에 연결됩니다. 다음과 같은 작업을 할 수 있습니다. 그런 다음 getData() 또는 getDataString()입니다.

    <ph type="x-smartling-placeholder">
  • 데이터 URI를 두 부분으로 분할: 모든 제안에 공통된 부분 각 추천에 고유한 부분을 나타냅니다. 이러한 부분을 페이지의 검색 가능한 속성의 android:searchSuggestintentData 속성 구성 및 SUGGEST_COLUMN_INTENT_DATA_ID 열 각 추천 표가 표시됩니다.

    다음 예는 공통된 검색 가능 속성의 android:searchSuggestIntentData 속성 구성:

      <?xml version="1.0" encoding="utf-8"?>
      <searchable xmlns:android="http://schemas.android.com/apk/res/android"
          android:label="@string/app_label"
          android:hint="@string/search_hint"
          android:searchSuggestAuthority="com.example.MyCustomSuggestionProvider"
          android:searchSuggestIntentAction="android.intent.action.VIEW"
          android:searchSuggestIntentData="content://com.example/datatable" >
      </searchable>
      

    각 제안의 최종 경로(고유한 부분)를 제안의 SUGGEST_COLUMN_INTENT_DATA_ID 열 표에서 볼 수 있습니다. 사용자가 추천 검색어를 선택하면 시스템은 android:searchSuggestIntentData은 슬래시 (/)를 추가합니다. 그런 다음 전체 콘텐츠를 형성하는 SUGGEST_COLUMN_INTENT_DATA_ID 열 URI입니다. 그런 다음 다음을 사용하여 Uri를 검색할 수 있습니다. getData()입니다.

데이터 추가하기

인텐트로 더 많은 정보를 표현해야 하는 경우 테이블 열(예: SUGGEST_COLUMN_INTENT_EXTRA_DATA)은 추천에 대한 추가 정보를 저장합니다. 이 열에 저장된 데이터 인텐트 추가 번들의 EXTRA_DATA_KEY에 배치됩니다.

인텐트 처리

맞춤 인텐트로 맞춤 추천 검색어를 제공한 후에는 사용자가 인텐트를 선택할 때 이러한 인텐트를 처리하도록 검색 가능 활동에서 추천되지 않습니다. 이 작업은 ACTION_SEARCH 인텐트를 처리할 수 있습니다. 이 예시에서는 Activity가 호출되는 동안 인텐트를 처리할 수 onCreate() 콜백을 사용합니다.

Kotlin

when(intent.action) {
    Intent.ACTION_SEARCH -> {
        // Handle the normal search query case.
        intent.getStringExtra(SearchManager.QUERY)?.also { query ->
            doSearch(query)
        }
    }
    Intent.ACTION_VIEW -> {
        // Handle a suggestions click, because the suggestions all use ACTION_VIEW.
        showResult(intent.data)
    }
}

자바

Intent intent = getIntent();
if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
    // Handle the normal search query case.
    String query = intent.getStringExtra(SearchManager.QUERY);
    doSearch(query);
} else if (Intent.ACTION_VIEW.equals(intent.getAction())) {
    // Handle a suggestions click, because the suggestions all use ACTION_VIEW.
    Uri data = intent.getData();
    showResult(data);
}

이 예에서 인텐트 작업은 ACTION_VIEW이고 데이터는 는 android:searchSuggestIntentData 문자열 및 SUGGEST_COLUMN_INTENT_DATA_ID 열 그런 다음 URI는 콘텐츠 제공자에 다음 쿼리를 쿼리하는 로컬 showResult() 메서드 참조해야 합니다.

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

쿼리 텍스트 재작성

기본적으로 사용자가 트랙볼이나 D패드를 사용할 때와 같이 업데이트. 하지만 사용자의 쿼리 텍스트가 표시되는 대로 임시로 다시 작성할 수 있습니다. 를 입력합니다. 이렇게 하면 사용자는 추천된 검색어를 확인하고 검색창을 선택하여 질의 응답 시간을 줄일 수 있습니다.

쿼리 텍스트를 다시 쓸 수 있는 방법은 다음과 같습니다.

  • 검색 가능한 속성에 android:searchMode 속성을 추가합니다. "queryRewriteFromText" 값으로 구성 이 이 경우 추천의 SUGGEST_COLUMN_TEXT_1에 있는 콘텐츠 열은 쿼리 텍스트를 다시 작성하는 데 사용됩니다.
  • 검색 가능 항목에 android:searchMode 속성을 추가합니다.\ "queryRewriteFromData" 값으로 구성 이 이 경우 추천 항목의 콘텐츠가 SUGGEST_COLUMN_INTENT_DATA 열은 쿼리를 다시 작성하는 데 사용됩니다. 있습니다. 이는 목적에 맞게 의도된 URI 또는 기타 데이터 형식에만 사용자에게 표시됩니다. 내부 URI 스키마를 사용하여 재작성하지 않음 쿼리를 실행할 수 있습니다.
  • 고유 쿼리 텍스트 문자열을 추천 검색어 표의 SUGGEST_COLUMN_QUERY 열입니다. 만약 열이 있고 현재 추천 검색어에 대한 값이 포함된 경우 쿼리 텍스트를 다시 작성하고 이전 있습니다.

빠른 검색창에 추천 검색어 표시

맞춤 추천 검색어를 제공하도록 앱을 구성한 후에는 정보를 수정하는 것만큼이나 간단합니다. 검색 가능한 구성을 추가하여 android:includeInGlobalSearch: "true"입니다.

추가 작업이 필요한 유일한 시나리오는 제공자가 읽기 권한을 요구합니다. 이 경우 제공자가 Quick에 권한을 부여할 <path-permission> 요소 콘텐츠 제공자에 대한 검색창 읽기 액세스 권한(아래 참고) 예:

<provider android:name="MySuggestionProvider"
          android:authorities="com.example.MyCustomSuggestionProvider"
          android:readPermission="com.example.provider.READ_MY_DATA"
          android:writePermission="com.example.provider.WRITE_MY_DATA">
  <path-permission android:pathPrefix="/search_suggest_query"
                   android:readPermission="android.permission.GLOBAL_SEARCH" />
</provider>

이 예에서 제공자는 콘텐츠에 관한 읽기 및 쓰기 액세스를 제한합니다. <path-permission> 요소는 다음과 같이 제한을 수정합니다. "/search_suggest_query" 내의 콘텐츠에 대한 읽기 액세스 권한 부여 "android.permission.GLOBAL_SEARCH" 권한인 경우 경로 프리픽스 존재하지 않습니다. 내 콘텐츠를 쿼리할 수 있도록 빠른 검색창에 대한 액세스 권한을 부여합니다. 추천을 제공합니다.

콘텐츠 제공자가 읽기 권한을 적용하지 않으면 빠른 검색이 Box에서 기본적으로 읽습니다.

기기에서 추천 기능 사용 설정

기본적으로 앱은 빠른 검색창에 추천 검색어를 제공하도록 설정되어 있지 않습니다. 할 수 있습니다. 사용자는 검색 가능 항목설정 > Google 검색을 통해 사용자는 앱을 검색 가능한 항목으로 표시합니다.

빠른 검색창에서 사용할 수 있는 각 애플리케이션은 검색 가능한 항목 설정 페이지 항목에 앱 이름이 포함됩니다. 앱에서 검색할 수 있고 생성된 콘텐츠에 관한 간단한 설명 빠른 검색창에서 추천 검색어를 사용할 수 있습니다. 설명 텍스트를 정의하기 위해 검색 가능한 앱에 android:searchSettingsDescription를 추가하세요. 속성을 검색 가능한 구성에 추가해야 합니다. 예:

<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
    android:label="@string/app_label"
    android:hint="@string/search_hint"
    android:searchSuggestAuthority="com.example.MyCustomSuggestionProvider"
    android:searchSuggestIntentAction="android.intent.action.VIEW"
    android:includeInGlobalSearch="true"
    android:searchSettingsDescription="@string/search_description" >
</searchable>

android:searchSettingsDescription의 문자열을 간결하게 만듭니다. 검색 가능한 콘텐츠를 명시해야 합니다. 예: '아티스트, 앨범, 트랙" 음악 앱 또는 '저장된 메모' 입니다. 이러한 설명을 제공하면 사용자가 제안이 제공됩니다 다음 경우에 항상 이 속성 포함 android:includeInGlobalSearch이(가) true입니다.

추천 검색어를 사용 설정하려면 사용자가 설정 메뉴를 방문해야 하기 때문입니다. 과 같이, 검색이 앱에서 중요한 측면이라면 사용자에게 전달하세요 예를 들어 사용자가 처음 방문할 때 사용자가 빠른 검색에 추천 검색어를 사용하는 방법을 설명하는 앱을 실행할 때 검색창

빠른 검색창 추천 검색어 바로가기 관리

사용자가 빠른 검색창에서 선택하는 추천은 자동으로 실행될 수 있습니다. 바로가기로 만들 수 있습니다. 시스템이 기존 광고 항목에서 추천에 빠르게 액세스할 수 있습니다. 콘텐츠 제공자를 다시 쿼리해야 합니다.

기본적으로 빠른 검색에서 가져온 모든 추천 검색어에 대해 사용하도록 설정됩니다. 시간이 지남에 따라 추천 데이터가 변경되면 이를 요청할 수 있습니다 단축키가 새로고침됩니다 예를 들어 추천에 동적 콘텐츠가 언급되어 있다면 데이터를 수신한 뒤 추천 상태를 표시할 것을 사용자에게 표시될 때 바로 가기가 새로고침됩니다. 이렇게 하려면 SUGGEST_COLUMN_SHORTCUT_ID를 추천 단어로 표시합니다. 이때 이 열을 사용하여 각 추천 검색어에 대한 단축키 동작을 방법은 다음과 같습니다.

  • 빠른 검색창에서 콘텐츠 제공자를 다시 쿼리하여 새 추천 단축키의 버전입니다.

    SUGGEST_COLUMN_SHORTCUT_ID 열에 다음 값 제공 단축키가 표시됩니다. 가장 중요한 데이터가 있으면 바로가기가 빠르게 표시됩니다. 새로 고침 쿼리가 반환될 때까지 추천은 새 정보로 새로고침됩니다. 새로고침 쿼리는 URI 경로가 SUGGEST_URI_PATH_SHORTCUT: SUGGEST_URI_PATH_QUERY입니다.

    반환하는 Cursor에 다음을 사용하여 하나의 추천이 포함되도록 합니다. 열이 나오지 않을 수 있습니다. 단축키는 더 이상 유효하지 않으며, 이 경우 추천은 사라집니다. 바로가기가 삭제됩니다.

    추천 검색어가 다음과 같이 새로고침하는 데 더 오래 걸릴 수 있는 데이터를 참조하는 경우 네트워크 기반 새로고침의 경우 SUGGEST_COLUMN_SPINNER_WHILE_REFRESHING 열을 다음 열에 추가합니다. 제안사항 테이블을 true로 하여 진행률 스피너를 오른쪽 아이콘을 터치합니다. true 이외의 값 진행률 스피너가 표시되지 않습니다.

  • 추천 검색어가 바로가기에 복사되지 않도록 합니다.

    SUGGEST_NEVER_MAKE_SHORTCUT 값을 입력합니다. SUGGEST_COLUMN_SHORTCUT_ID 열 이 경우 추천은 바로가기에 복사되지 않습니다. 이 작업은 이전에 복사된 추천이 표시되지 않게 할 수 있습니다. 만약 열에 일반 값을 제공하면 추천 단축키가 새로고침 쿼리가 반환될 때까지만 표시됩니다.

  • 기본 바로가기 동작이 적용되도록 합니다.

    각각에 대해 SUGGEST_COLUMN_SHORTCUT_ID를 비워둡니다. 이 제안은 변경되지 않으며 단축키를 사용합니다.

추천이 변경되지 않는 경우에는 SUGGEST_COLUMN_SHORTCUT_ID

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

빠른 검색창 추천 검색어 순위 정보

앱의 추천 검색어를 빠른 검색창에서 사용할 수 있게 되면 빠른 검색창 순위에 따라 추천 검색어가 사용자를 표시할 수 있습니다. 이는 얼마나 많은 다른 앱이 얼마나 많은지에 따라 해당 검색어에 대한 검색 결과 및 이 검색어의 검색결과와 비교했을 때 사용자가 내 결과를 선택하는 빈도 다른 앱에서 가져온 것입니다. 제안사항이 표시되는 방식에는 보장되지 않습니다. 특정 검색어에 대해 앱의 추천 검색어가 표시되는지 여부를 확인할 수 있습니다. 포함 일반적으로 양질의 결과를 제공하면 앱이 눈에 잘 띄는 위치에 추천이 제공되며, 눈에 잘 띄는 곳에 품질이 낮은 제안은 순위가 낮아지거나 표시되지 않을 가능성이 높습니다.