Android の検索ダイアログまたは検索ウィジェットを使用する場合は、 アプリのデータから作成されたカスタムの検索候補。たとえば アプリが辞書の場合は、その辞書の単語の候補の中から、目的の ユーザーが入力を完了する前に、検索フィールドに入力したテキストと一致するもの 確認できます。これらの提案は、これらの提案を効果的に予測できることから、 ユーザーが望む機能にすばやくアクセスできるようにすることです。図 1 は、 カスタム候補の検索ダイアログ。
カスタム候補を提示すると、 のクイック検索ボックスが表示され、Google 検索の外部から 。
カスタム候補を追加する前に、Android の検索ダイアログまたは アプリ内の検索ウィジェットです。詳細については、 検索インターフェース コンテンツ プロバイダ。
基本情報
![](https://developer.android.google.cn/static/images/search/search-suggest-custom.png?authuser=9&hl=ja)
図 1. 以下を含む検索ダイアログのスクリーンショット カスタム検索候補
ユーザーがカスタム候補を選択すると、
Intent
を
できます。通常の検索クエリとは異なり、
ACTION_SEARCH
代わりにカスタム候補を定義して
ACTION_VIEW
または
関連するデータも含められます。
選択します。辞書の例では、ユーザーが単語の選択を
その単語の定義がただちに開きます。
検索する手間が省けます
カスタム候補を提示するには、次の操作を行います。
- 次の説明に沿って、基本的な検索可能アクティビティを実装します。 検索インターフェースを作成します。
- コンテンツに関する情報を使用して検索可能構成を変更する カスタム候補を提供するプロバイダです
- テーブルなどのテーブルを
SQLiteDatabase
, 必要な列を使用してテーブルの形式を設定します。 - コンテンツを作成 できます。これにより、提案テーブルにアクセスできる 指定します。
- ユーザーがメッセージを選択したときに送信される
Intent
の型を宣言します。 表示されるようになりました。
Android システムが検索ダイアログを表示するのと同様に、 検索候補。システムで処理を実行するコンテンツ プロバイダが必要です。 提案を取得できます。読む コンテンツ プロバイダ コンテンツ プロバイダを作成する方法をご覧ください。
アクティビティが検索可能であるとシステムで判断され、 ユーザーが検索語句を入力すると、 query:
- システムは検索クエリのテキストを取り込みます。つまり、 コンテンツを管理するコンテンツ プロバイダに対して、 提案します。
- コンテンツ プロバイダが
Cursor
検索語句に関連するすべての候補が示されます。 あります。 - システムによって提示された候補のリストが表示されます。
Cursor
。
カスタム候補が表示された後、以下の処理が行われることがあります。
- ユーザーが別の文字を入力したり、なんらかの方法でクエリを変更したりした場合、 それに応じて候補リストが更新されます。
- ユーザーが検索を実行すると、候補は無視され、
通常のルールを使用して検索可能なアクティビティに配信されます。
ACTION_SEARCH
インテント。 - ユーザーが候補を選択すると、検索可能な API にインテントが送信されます。 カスタム アクションとカスタムデータを格納して、アプリが開けるようにする コンテンツの候補を表示します。
検索可能構成を変更する
カスタム候補のサポートを追加するには、
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
提案します。
カスタム候補のコンテンツ プロバイダの作成について詳しくは、 次の 2 つのセクションで説明します。
- 候補のクエリを処理する
- システムがコンテンツ プロバイダにリクエストを送信する方法と、 できます。
- 候補のテーブルを作成する
-
クエリごとに
Cursor
が返されます。
候補のクエリを処理する
コンテンツ プロバイダに候補をリクエストすると、システムは
コンテンツ プロバイダの query()
メソッドを使用します。このメソッドを実装して、
候補データを検索し、そのデータを参照する Cursor
を返します。
関連すると思われる提案が表示されます。
システムに渡されるパラメータの概要は次のとおりです。
query()
メソッドを次の順序で列挙します。
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 エンコード ルールを使用してエンコードされるため、 デコードする必要があります。
<ph type="x-smartling-placeholder">optional.suggest.path
部分が含まれるのは、 検索可能な構成ファイルでこのようなパスを設定した場合は、android:searchSuggestPath
属性。必要なのは、 複数の検索可能なアクティビティに同じコンテンツ プロバイダを使用している。条件 この場合は、サジェスチョンクエリのソースを明確にします。projection
- 常に null。
selection
android:searchSuggestSelection
で提供される値 属性に指定する必要があります。使用しない場合は nullandroid:searchSuggestSelection
属性を宣言します。「 これについては、次のセクションで詳しく説明します。selectionArgs
- 配列の最初で唯一の要素として検索クエリが含まれます。
android:searchSuggestSelection
属性を できます。宣言しない場合、android:searchSuggestSelection
の場合、このパラメータは null です。 これについては、次のセクションで詳しく説明します。sortOrder
- 常に null。
システムは検索クエリのテキストを 2 つの方法で送信できます。デフォルトの方法は、
に渡されるコンテンツ URI の最後のパスとしてクエリテキストが組み込まれるため、
uri
パラメータ。ただし、
検索可能構成の android:searchSuggestSelection
場合、クエリテキストは代わりに
selectionArgs
文字列配列。この 2 つのオプションについては、
説明します。
URI でクエリを取得する
デフォルトでは、クエリは uri
の最後のセグメントとして追加されます。
パラメータ - Uri
オブジェクト。クエリテキストを取得するには、
ケースに
getLastPathSegment()
,
次のように指定します。
Kotlin
val query: String = uri.lastPathSegment.toLowerCase()
Java
String query = uri.getLastPathSegment().toLowerCase();
これにより、Uri
の最後のセグメント(クエリ)が返されます。
表示されます。
選択引数でクエリを取得する
URI を使用するよりも、アプリケーションに対して
query()
メソッドを使用して、
selection
と 2 つの Pod を
selectionArgs
パラメータを使用して適切な値を渡します。この
android:searchSuggestSelection
属性を
SQLite 選択文字列を使用して検索可能な構成を作成します。選択範囲内
文字列の場合は、実際の文字列のプレースホルダとして疑問符(?)を
できます。システムは、選択文字列を次のようにして query()
を呼び出します。
最初の要素としての selection
パラメータと検索クエリ
(selectionArgs
配列内)。
たとえばこれは
全文を作成するための android:searchSuggestSelection
属性
search ステートメント:
<?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
: インテントのアクションを定義します。
ユーザーが候補を選択したときに、各インテントとともに送信されます。これについては
「宣言するインテントの
提案] セクションに表示されます。
候補テーブルを作成する
Cursor
を使用して候補をシステムに返すと、
各行には特定の列があると想定しますデータを保存する場所や
デバイス上の SQLite データベース、ウェブ上のデータベース内の候補データ
アップロードするか、デバイスまたはウェブの別の形式で入力する場合は、候補を行としてフォーマットします。
Cursor
を使用して提示します。
システムは複数の列を認識しますが、必要な列は 2 つだけです。
_ID
- 各候補の一意の行 ID(整数)。システムの動作は次のとおりです。
メッセージの候補を
ListView
。 SUGGEST_COLUMN_TEXT_1
- 候補として表示される文字列。
次の列はすべて省略可能です。多くについては、このモジュールの 以降のセクションで説明します
SUGGEST_COLUMN_TEXT_2
- 文字列。
Cursor
にこの列が含まれている場合、すべて 2 行の形式で表示されます。この列の文字列は メインの候補の下に 2 行目の小さいテキスト行として表示される あります。第二のテキストを表示しない場合は、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
: 何かを開く場合に適しています。
たとえば単語の定義、連絡先情報、ウェブページなどです
ただし、インテントのアクションは、その他のアクションでもかまいません。また、アクションごとに異なる場合もあります。
表示されます。
すべての候補で同じインテントのアクションを使用するかどうかに応じて、 次の 2 つの方法でアクションを定義できます。
- 属性の
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"
。
この 2 つの方法を組み合わせることも可能です。たとえば、
実行するアクションを含む android:searchSuggestIntentAction
属性
デフォルトですべての候補とともに使用し、一部のアクションではこのアクションをオーバーライドする
別のアクションを宣言して、新しい提案を
SUGGEST_COLUMN_INTENT_ACTION
列。この値を含めない場合
SUGGEST_COLUMN_INTENT_ACTION
列に含まれていると、インテントが
android:searchSuggestIntentAction
属性で指定:
分析できます
インテント データを宣言する
ユーザーが候補を選択すると、検索可能なアクティビティに
インテントのインテントを定義する必要があります。
セクションがありますが、インテントには、アクティビティで識別するためのデータも含まれている必要があります。
選択します。具体的には、データは一意である必要があります。
(SQLite テーブル内の候補の行 ID など)が含まれます。
インテントを受信したら、添付データを
getData()
または
getDataString()
。
インテントに含めるデータは、次の 2 つの方法で定義できます。
- 各候補のデータを
候補の表の
SUGGEST_COLUMN_INTENT_DATA
列。提案に含まれるインテントごとに必要な情報をすべて提供する
<ph type="x-smartling-placeholder">SUGGEST_COLUMN_INTENT_DATA
列を追加してテーブルを 各行に固有のデータを入力しますこの列のデータ この列で定義したとおりにインテントに関連付けられます。Google Chat ではgetData()
またはgetDataString()
。 - データ URI を 2 つの部分(すべての候補に共通する部分)に断片化する
各候補に固有の部分を示しますこれらの部品を
検索可能の
android:searchSuggestintentData
属性 構成とSUGGEST_COLUMN_INTENT_DATA_ID
列にある 提案テーブルが作成されます次の例は、メッセージの URI の一部を宣言する方法を示しています。 すべての提案に共通 検索可能要素の
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
の処理に加えて、
検索可能アクティビティですでに実行しているインテントです。これは
アクティビティの実行中にインテントを
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) } }
Java
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()
メソッドを使用して
URI で指定されたアイテム。
クエリテキストを書き換える
デフォルトでは、ユーザーが トラックボールや D-pad などの方向コントロールでは、クエリテキストは表示されません。 更新されますただし、ユーザーのクエリテキストは、表示されたとおりに一時的に書き換えることができます。 テキスト ボックスに、フォーカスされている候補と一致するクエリを入力します。これにより、 クエリの候補が表示され、ユーザーは検索ボックスを選択して 送信する前に、そのクエリを検索としてディスパッチします。
クエリテキストは以下の方法で書き換えることができます。
android:searchMode
属性を検索可能ファイルに追加する"queryRewriteFromText"
値を使用して構成します。この 候補のSUGGEST_COLUMN_TEXT_1
の内容。 column を使用してクエリテキストを書き換えます。android:searchMode
属性を検索可能ファイルに追加する"queryRewriteFromData"
値を使用して構成します。この 候補のSUGGEST_COLUMN_INTENT_DATA
列はクエリを書き換えるために使用されます。 あります。これは、URI やその他のデータ形式でのみ使用してください。 HTTP URL など、ユーザーに表示されます。書き換えに内部 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 によって読み上げられます。
デバイスで候補を有効にする
デフォルトでは、クイック検索ボックスに候補を表示する機能は有効になっていません。 そのように構成されている場合でも適用されます。ユーザーは クイック検索ボックス内の [検索可能 個のアイテム - [設定] >検索に加え、 検索対象に指定します
クイック検索ボックスに表示される各アプリのエントリは、
検索対象の設定ページ。エントリにはアプリの名前が含まれます
アプリから検索できるコンテンツや
クイック検索ボックスの候補に表示できます。説明テキストを定義するには
検索可能なアプリの場合は、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
列。
クイック検索ボックスの候補のランキングについて
アプリの検索候補をクイック検索ボックスで表示できるようにするには、 クイック検索ボックスのランキングにより、検索結果での 表示することができますこれは、同じ数の他のアプリケーションの数や ユーザーが検索結果を選択する頻度を 簡単に管理できます。提案された内容が実際にどのように アプリのおすすめをまったく表示するかを決めるかを設定できます。イン 品質の高い結果を提供すると、アプリが 目立つ位置に表示されるので、 品質の低い候補は、掲載順位が下がったり、表示されなくなったりする可能性が高くなります。