सर्च कॉन्फ़िगरेशन

Compose को आज़माएं
Android के लिए, Jetpack Compose को यूज़र इंटरफ़ेस (यूआई) टूलकिट के तौर पर इस्तेमाल करने का सुझाव दिया जाता है. Compose में खोज की सुविधा जोड़ने का तरीका जानें.

Android सिस्टम की मदद से खोज की सुविधा लागू करने के लिए, यानी किसी ऐक्टिविटी को खोज क्वेरी देने और खोज के सुझाव देने के लिए, आपके ऐप्लिकेशन को एक्सएमएल फ़ाइल के तौर पर खोज कॉन्फ़िगरेशन देना होगा.

इस पेज पर, खोज के कॉन्फ़िगरेशन फ़ाइल के सिंटैक्स और इस्तेमाल के बारे में बताया गया है. अपने ऐप्लिकेशन के लिए खोज की सुविधाओं को लागू करने के बारे में ज़्यादा जानने के लिए, खोज इंटरफ़ेस बनाना लेख पढ़ें.

फ़ाइल की जगह की जानकारी:
res/xml/filename.xml
Android, फ़ाइल के नाम को संसाधन आईडी के तौर पर इस्तेमाल करता है.
सिंटैक्स:
<?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
स्ट्रिंग रिसॉर्स. (ज़रूरी है.) आपके ऐप्लिकेशन का नाम. यह नाम, <activity> या <application> मेनिफ़ेस्ट एलिमेंट के android:label एट्रिब्यूट में दिए गए नाम से मेल खाना चाहिए. यह लेबल सिर्फ़ तब दिखता है, जब आपने android:includeInGlobalSearch को "true" पर सेट किया हो. इस मामले में, इस लेबल का इस्तेमाल आपके ऐप्लिकेशन की पहचान करने के लिए किया जाता है, ताकि सिस्टम की खोज सेटिंग में उसे खोजा जा सके.
android:hint
स्ट्रिंग रिसॉर्स. (सुझाया गया.) जब कोई टेक्स्ट नहीं डाला जाता है, तब खोज के लिए टेक्स्ट वाले फ़ील्ड में दिखने वाला टेक्स्ट. इससे उपयोगकर्ता को यह पता चलता है कि किस तरह के कॉन्टेंट को खोजा जा सकता है. अन्य Android ऐप्लिकेशन के साथ एक जैसा अनुभव देने के लिए, android:hint के लिए स्ट्रिंग को "Search <content-or-product>" के तौर पर फ़ॉर्मैट करें. उदाहरण के लिए, "गाने और कलाकारों को खोजें" या "YouTube पर खोजें".
android:searchMode
कीवर्ड. यह कुकी, खोज के नतीजों को दिखाने के तरीके को कंट्रोल करने वाले अतिरिक्त मोड सेट करती है. उपलब्ध मोड से यह तय होता है कि कस्टम सुझाव पर फ़ोकस किए जाने पर, क्वेरी के टेक्स्ट को कैसे फिर से लिखा जाना चाहिए. मोड की ये वैल्यू स्वीकार की जाती हैं:
वैल्यूब्यौरा
"queryRewriteFromData" SUGGEST_COLUMN_INTENT_DATA कॉलम में मौजूद वैल्यू का इस्तेमाल करके, क्वेरी टेक्स्ट को फिर से लिखें. इसका इस्तेमाल सिर्फ़ तब किया जाना चाहिए, जब SUGGEST_COLUMN_INTENT_DATA में मौजूद वैल्यू, उपयोगकर्ता की जांच और बदलाव के लिए सही हों. जैसे, एचटीटीपी यूआरआई.
"queryRewriteFromText" क्वेरी के टेक्स्ट को फिर से लिखने के लिए, SUGGEST_COLUMN_TEXT_1 कॉलम में मौजूद वैल्यू का इस्तेमाल करें.

ज़्यादा जानकारी के लिए, सर्च के लिए पसंद के मुताबिक सुझाव जोड़ें में क्वेरी टेक्स्ट को फिर से लिखने से जुड़ा दस्तावेज़ देखें.

android:searchButtonText
स्ट्रिंग रिसॉर्स. खोज करने वाले बटन में दिखने वाला टेक्स्ट. डिफ़ॉल्ट रूप से, बटन पर खोज आइकॉन (मैग्नीफ़ाइंग ग्लास) दिखता है. यह आइकॉन, अंतरराष्ट्रीय स्तर पर इस्तेमाल करने के लिए सबसे सही है. इसलिए, इस एट्रिब्यूट का इस्तेमाल बटन को बदलने के लिए न करें. ऐसा तब तक न करें, जब तक कि बटन का व्यवहार खोज के अलावा कुछ और न हो. जैसे, वेब ब्राउज़र में यूआरएल का अनुरोध.
android:inputType
कीवर्ड. इससे इनपुट के तरीके के बारे में पता चलता है. जैसे, सॉफ़्ट कीबोर्ड का टाइप. ज़्यादातर खोजों में, फ़्री-फ़ॉर्म टेक्स्ट की ज़रूरत होती है. ऐसे में, आपको इस एट्रिब्यूट की ज़रूरत नहीं होती. इस एट्रिब्यूट के लिए इस्तेमाल की जा सकने वाली वैल्यू की सूची देखने के लिए, inputType की जानकारी देखें.
android:imeOptions
कीवर्ड. इनपुट के तरीके के लिए अतिरिक्त विकल्प उपलब्ध कराता है. ज़्यादातर खोजों के लिए, आपको इस एट्रिब्यूट की ज़रूरत नहीं होती. इन खोजों में, फ़्री-फ़ॉर्म टेक्स्ट की ज़रूरत होती है. डिफ़ॉल्ट IME actionSearch है. यह सॉफ़्ट कीबोर्ड में कैरिज रिटर्न के बजाय "खोजें" बटन उपलब्ध कराता है. इस एट्रिब्यूट के लिए इस्तेमाल की जा सकने वाली वैल्यू की सूची देखने के लिए, imeOptions पर जाएं.

खोज से जुड़े सुझाव वाले एट्रिब्यूट

अगर आपको खोज के सुझाव जनरेट करने के लिए, कॉन्टेंट देने वाली कंपनी को तय करना है, तो आपको ऐसे अतिरिक्त एट्रिब्यूट तय करने होंगे जो कॉन्टेंट देने वाली कंपनी के साथ कम्यूनिकेशन को कॉन्फ़िगर करते हैं. खोज के सुझाव देने के लिए, आपको यहां दिए गए <searchable> एट्रिब्यूट में से कुछ की ज़रूरत होगी:


android:searchSuggestAuthority
String. (खोज से जुड़े सुझाव देने के लिए ज़रूरी है.) यह वैल्यू, Android मेनिफ़ेस्ट <provider> एलिमेंट के android:authorities एट्रिब्यूट में दी गई अथॉरिटी स्ट्रिंग से मेल खानी चाहिए.
android:searchSuggestPath
String. इस पाथ का इस्तेमाल, सुझावों की क्वेरी Uri के हिस्से के तौर पर किया जाता है. यह प्रीफ़िक्स और अथॉरिटी के बाद और सुझावों के स्टैंडर्ड पाथ से पहले आता है. इसकी ज़रूरत सिर्फ़ तब होती है, जब आपके पास एक ऐसा कॉन्टेंट प्रोवाइडर हो जो अलग-अलग तरह के सुझाव देता हो. जैसे, अलग-अलग तरह के डेटा के लिए. साथ ही, आपको सुझावों से जुड़ी क्वेरी को अलग-अलग करने का कोई तरीका चाहिए हो, ताकि आपको सुझाव मिलने पर उन्हें अलग-अलग किया जा सके.
android:searchSuggestSelection
String. इस वैल्यू को आपके क्वेरी फ़ंक्शन में selection पैरामीटर के तौर पर पास किया जाता है. आम तौर पर, यह आपके डेटाबेस के लिए WHERE क्लॉज़ होता है. इसमें एक सवालिया निशान होना चाहिए, ताकि उपयोगकर्ता की ओर से डाली गई क्वेरी स्ट्रिंग के लिए प्लेसहोल्डर के तौर पर इसका इस्तेमाल किया जा सके. उदाहरण के लिए, "query=?". हालांकि, selectionArgs पैरामीटर का इस्तेमाल करके, क्वेरी टेक्स्ट की डिलीवरी को ट्रिगर करने के लिए, शून्य नहीं है वाली किसी भी वैल्यू का इस्तेमाल किया जा सकता है. इसके बाद, selection पैरामीटर को अनदेखा किया जा सकता है.
android:searchSuggestIntentAction
String. जब कोई उपयोगकर्ता, कस्टम खोज के सुझाव पर टैप करता है, तब इस्तेमाल की जाने वाली डिफ़ॉल्ट इंटेंट कार्रवाई—जैसे कि "android.intent.action.VIEW". अगर SUGGEST_COLUMN_INTENT_ACTION कॉलम का इस्तेमाल करके, चुनी गई सलाह से इस वैल्यू को नहीं बदला जाता है, तो उपयोगकर्ता के किसी सलाह पर टैप करने पर, वैल्यू को Intent के ऐक्शन फ़ील्ड में रखा जाता है.
android:searchSuggestIntentData
String. डिफ़ॉल्ट इंटेंट डेटा, जिसका इस्तेमाल तब किया जाएगा, जब कोई व्यक्ति कस्टम खोज सुझाव पर टैप करेगा. अगर चुने गए सुझाव से इस वैल्यू को नहीं बदला जाता है, तो SUGGEST_COLUMN_INTENT_DATA कॉलम के ज़रिए, उपयोगकर्ता के किसी सुझाव पर टैप करने पर, यह वैल्यू Intent के डेटा फ़ील्ड में रखी जाती है.
android:searchSuggestThreshold
पूर्णांक. सुझाव देखने के लिए, कम से कम इतने वर्ण होने चाहिए. इससे सिर्फ़ यह गारंटी मिलती है कि सिस्टम, थ्रेशोल्ड से कम समय के लिए आपके कॉन्टेंट प्रोवाइडर से क्वेरी नहीं करेगा. डिफ़ॉल्ट वैल्यू 0 है.

खोज के सुझावों के लिए ऊपर दिए गए एट्रिब्यूट के बारे में ज़्यादा जानने के लिए, खोज के लिए कस्टम सुझाव जोड़ने और कस्टम सुझाव जोड़ने से जुड़े दस्तावेज़ देखें.

होम स्क्रीन पर मौजूद खोज बॉक्स के एट्रिब्यूट

कस्टम खोज सुझावों को क्विक सर्च बॉक्स में उपलब्ध कराने के लिए, आपको यहां दिए गए कुछ <searchable> एट्रिब्यूट की ज़रूरत होगी:


android:includeInGlobalSearch
बूलियन. (क्विक सर्च बॉक्स में खोज के सुझाव देने के लिए ज़रूरी है.) अगर आपको अपने सुझावों को दुनिया भर में उपलब्ध Quick Search Box में शामिल करना है, तो इसे "true" पर सेट करें. क्विक सर्च बॉक्स में सुझाव दिखने से पहले, उपयोगकर्ता को सिस्टम की खोज सेटिंग में जाकर, आपके ऐप्लिकेशन को खोजे जा सकने वाले आइटम के तौर पर चालू करना होगा.
android:searchSettingsDescription
स्ट्रिंग रिसॉर्स. यह कुकी, Quick Search Box को दिए गए खोज के सुझावों के बारे में कम शब्दों में जानकारी देती है. यह जानकारी, आपके ऐप्लिकेशन के लिए खोजे जा सकने वाले आइटम की एंट्री में दिखती है. आपके ब्यौरे में, खोजे जा सकने वाले कॉन्टेंट के बारे में कम शब्दों में जानकारी दी गई हो. उदाहरण के लिए, संगीत ऐप्लिकेशन के लिए "कलाकार, एल्बम, और ट्रैक" या नोटपैड ऐप्लिकेशन के लिए "सेव किए गए नोट".
android:queryAfterZeroResults
बूलियन. अगर आपको कॉन्टेंट उपलब्ध कराने वाली कंपनी को उन क्वेरी के सुपरसेट के लिए कॉल करना है जिनके लिए पहले कोई नतीजा नहीं मिला था, तो इसे "true" पर सेट करें. उदाहरण के लिए, अगर आपका कॉन्टेंट प्रोवाइडर "bo" के लिए कोई नतीजा नहीं दिखाता है, तो "bob" के लिए फिर से क्वेरी करनी होगी. अगर इसे "false" पर सेट किया जाता है, तो एक सेशन के लिए सुपरसेट को अनदेखा कर दिया जाता है. जैसे, "bob" से फिर से क्वेरी नहीं होती है. यह कुकी, सिर्फ़ खोज डायलॉग या खोज विजेट का इस्तेमाल करते समय गतिविधि के दौरान मौजूद रहती है. खोज डायलॉग या गतिविधि को फिर से खोलने पर, "bo" आपके कॉन्टेंट उपलब्ध कराने वाले से फिर से क्वेरी करता है. डिफ़ॉल्ट मान असत्य है.

बोलकर खोजने की सुविधा से जुड़े एट्रिब्यूट

वॉइस सर्च की सुविधा चालू करने के लिए, आपको यहां दिए गए <searchable> एट्रिब्यूट में से कुछ की ज़रूरत होगी:


android:voiceSearchMode
कीवर्ड. (वॉइस सर्च की सुविधा देने के लिए ज़रूरी है.) इससे वॉइस सर्च की सुविधा चालू होती है. साथ ही, वॉइस सर्च के लिए एक खास मोड भी चालू होता है. ऐसा हो सकता है कि डिवाइस पर बोलकर खोजने की सुविधा उपलब्ध न हो. ऐसे में, इन फ़्लैग का कोई असर नहीं पड़ता. मोड की ये वैल्यू स्वीकार की जाती हैं:
वैल्यूब्यौरा
"showVoiceSearchButton" अगर डिवाइस पर बोलकर खोजने की सुविधा उपलब्ध है, तो बोलकर खोजने का बटन दिखाएं. अगर इसे सेट किया गया है, तो "launchWebSearch" या "launchRecognizer" को भी सेट करना होगा. इन्हें पाइप (|) वर्ण से अलग किया जाना चाहिए.
"launchWebSearch" बोलकर खोजने वाले बटन पर क्लिक करने से, उपयोगकर्ता सीधे तौर पर बोलकर वेब पर खोजने की सुविधा पर पहुंच जाता है. ज़्यादातर ऐप्लिकेशन इस फ़्लैग का इस्तेमाल नहीं करते, क्योंकि इससे उपयोगकर्ता को उस गतिविधि से हटा दिया जाता है जिसमें खोज शुरू की गई थी.
"launchRecognizer" 'बोलकर खोजें' बटन पर क्लिक करने के बाद, उपयोगकर्ता सीधे तौर पर बोलकर रिकॉर्ड करने की सुविधा पर पहुंच जाता है. इस गतिविधि में, उपयोगकर्ता को बोलने के लिए कहा जाता है. इसके बाद, बोले गए शब्दों को टेक्स्ट में बदला जाता है. साथ ही, खोज के लिए इस्तेमाल किए गए टेक्स्ट को खोजे जा सकने वाली गतिविधि में भेजा जाता है. यह ठीक उसी तरह होता है जैसे उपयोगकर्ता ने खोज के लिए इस्तेमाल किए गए टेक्स्ट को खोज के यूज़र इंटरफ़ेस (यूआई) में टाइप किया हो और खोज बटन पर टैप किया हो.
android:voiceLanguageModel
कीवर्ड. आवाज़ की पहचान करने वाले सिस्टम को इस भाषा मॉडल का इस्तेमाल करना होगा. इन वैल्यू का इस्तेमाल किया जा सकता है:
वैल्यूब्यौरा
"free_form" क्वेरी बोलकर टाइप करने के लिए, बोली पहचानने की सुविधा का इस्तेमाल करें. इसे मुख्य रूप से अंग्रेज़ी के लिए ऑप्टिमाइज़ किया गया है. यह डिफ़ॉल्ट विकल्प है.
"web_search" छोटे और खोज जैसे वाक्यांशों के लिए, वेब पर खोज के लिए इस्तेमाल किए जाने वाले शब्दों को पहचानने की सुविधा का इस्तेमाल करें. यह सुविधा, "free_form" की तुलना में ज़्यादा भाषाओं में उपलब्ध है.

ज़्यादा जानकारी के लिए, EXTRA_LANGUAGE_MODEL पर जाएं.

android:voicePromptText
स्ट्रिंग रिसॉर्स. बोलकर इनपुट देने वाले डायलॉग में दिखाने के लिए एक और मैसेज.
android:voiceLanguage
String. बोली जाने वाली भाषा, Locale में मौजूद किसी कॉन्स्टेंट की स्ट्रिंग वैल्यू के तौर पर दिखाई जाती है. जैसे, जर्मन के लिए "de" या फ़्रेंच के लिए "fr". इसकी ज़रूरत सिर्फ़ तब होती है, जब यह Locale.getDefault() की मौजूदा वैल्यू से अलग हो.
android:voiceMaxResults
पूर्णांक. जवाब के तौर पर मिलने वाले नतीजों की ज़्यादा से ज़्यादा संख्या सेट करता है. इसमें "सबसे अच्छा" नतीजा भी शामिल है. यह हमेशा ACTION_SEARCH इंटेंट की मुख्य क्वेरी के तौर पर दिया जाता है. यह वैल्यू 1 या इससे ज़्यादा होनी चाहिए. इस्तेमाल करें EXTRA_RESULTS ताकि इंटेंट से नतीजे मिल सकें. अगर यह वैल्यू नहीं दी जाती है, तो पहचानने वाला टूल यह तय करता है कि कितने नतीजे दिखाने हैं.
<actionkey>
यह सर्च ऐक्शन के लिए, डिवाइस के बटन और उसके व्यवहार के बारे में बताता है. खोज से जुड़ी कार्रवाई, डिवाइस पर मौजूद बटन को टैप करने पर खास सुविधा देती है. यह सुविधा, मौजूदा क्वेरी या फ़ोकस किए गए सुझाव पर आधारित होती है. उदाहरण के लिए, Contacts ऐप्लिकेशन में खोज करने की सुविधा उपलब्ध होती है. इससे, CALL बटन पर टैप करने पर, फ़िलहाल चुने गए संपर्क के सुझाव को फ़ोन कॉल किया जा सकता है.

सभी डिवाइसों पर ऐक्शन बटन उपलब्ध नहीं होते. साथ ही, सभी बटन को इस तरह से नहीं बदला जा सकता. उदाहरण के लिए, "होम" बटन को बदला नहीं जा सकता. यह हमेशा होम स्क्रीन पर वापस जाना चाहिए. साथ ही, यह भी पक्का करें कि आपने किसी ऐसी कुंजी के लिए ऐक्शन बटन तय न किया हो जिसकी ज़रूरत खोज क्वेरी टाइप करने के लिए होती है. इससे कॉल बटन और मेन्यू बटन के लिए, उपलब्ध और काम की ऐक्शन कुंजियों की संख्या सीमित हो जाती है.

आपको कुंजी तय करने के लिए android:keycode एट्रिब्यूट की वैल्यू तय करनी होगी. साथ ही, खोज से जुड़ी कार्रवाई तय करने के लिए, अन्य तीन एट्रिब्यूट में से कम से कम एक एट्रिब्यूट की वैल्यू तय करनी होगी.

एट्रिब्यूट:

android:keycode
String. (ज़रूरी है.) KeyEvent से मिला एक कुंजी कोड, जो उस ऐक्शन की को दिखाता है जिस पर आपको जवाब देना है. उदाहरण के लिए, "KEYCODE_CALL". इसे ACTION_SEARCH इंटेंट में जोड़ा जाता है. यह इंटेंट, खोजे जा सकने वाले ऐप्लिकेशन को पास किया जाता है. कुंजी कोड की जांच करने के लिए, getIntExtra(SearchManager.ACTION_KEY) का इस्तेमाल करें. खोज से जुड़ी कार्रवाई के लिए, सभी बटन काम नहीं करते. ऐसा इसलिए, क्योंकि इनमें से कई बटन का इस्तेमाल टाइप करने, नेविगेट करने या सिस्टम फ़ंक्शन के लिए किया जाता है.
android:queryActionMsg
String. अगर उपयोगकर्ता क्वेरी टेक्स्ट डालते समय ऐक्शन कुंजी दबाता है, तो भेजा जाने वाला ऐक्शन मैसेज. इसे ACTION_SEARCH इंटेंट में जोड़ा जाता है. यह इंटेंट, सिस्टम आपकी खोज की जा सकने वाली गतिविधि को पास करता है. स्ट्रिंग की जांच करने के लिए, getStringExtra(SearchManager.ACTION_MSG) का इस्तेमाल करें.
android:suggestActionMsg
String. अगर सुझाव पर फ़ोकस करते समय ऐक्शन बटन दबाया जाता है, तो भेजा जाने वाला मैसेज. इसे उस इंटेंट में जोड़ा जाता है जिसे सिस्टम, खोजे जा सकने वाले ऐप्लिकेशन को पास करता है. इसके लिए, सुझाव के लिए तय की गई कार्रवाई का इस्तेमाल किया जाता है. स्ट्रिंग की जांच करने के लिए, getStringExtra(SearchManager.ACTION_MSG) का इस्तेमाल करें. इसका इस्तेमाल सिर्फ़ तब किया जाना चाहिए, जब आपके सभी सुझाव इस ऐक्शन बटन के साथ काम करते हों. अगर सभी सुझाव एक ही ऐक्शन कुंजी को हैंडल नहीं कर सकते, तो आपको इसके बजाय यहां दिया गया android:suggestActionMsgColumn एट्रिब्यूट इस्तेमाल करना होगा.
android:suggestActionMsgColumn
String. आपके कॉन्टेंट प्रोवाइडर में मौजूद उस कॉलम का नाम जो इस ऐक्शन की के लिए ऐक्शन मैसेज तय करता है. यह मैसेज तब भेजा जाता है, जब उपयोगकर्ता किसी सुझाव पर फ़ोकस करते समय ऐक्शन की दबाता है. इस एट्रिब्यूट की मदद से, सुझाव के आधार पर कार्रवाई की कुंजी को कंट्रोल किया जा सकता है. ऐसा इसलिए, क्योंकि सभी सुझावों के लिए कार्रवाई का मैसेज तय करने के लिए android:suggestActionMsg एट्रिब्यूट का इस्तेमाल करने के बजाय, कॉन्टेंट उपलब्ध कराने वाली हर कंपनी अपनी कार्रवाई का मैसेज देती है.

सबसे पहले, आपको कॉन्टेंट उपलब्ध कराने वाली कंपनी के लिए, हर सुझाव में एक कॉलम तय करना होगा. इससे कार्रवाई के बारे में जानकारी देने वाला मैसेज दिखाया जा सकेगा. इसके बाद, इस एट्रिब्यूट में उस कॉलम का नाम डालें. सिस्टम, आपके सुझाव वाले कर्सर को देखता है. यहां दी गई स्ट्रिंग का इस्तेमाल करके, वह कार्रवाई के मैसेज वाले कॉलम को चुनता है. इसके बाद, कर्सर से कार्रवाई के मैसेज वाली स्ट्रिंग को चुनता है. इस स्ट्रिंग को उस इंटेंट में जोड़ा जाता है जिसे सिस्टम, खोज की जा सकने वाली आपकी ऐक्टिविटी को पास करता है. इसके लिए, सुझावों के लिए तय की गई कार्रवाई का इस्तेमाल किया जाता है. स्ट्रिंग की जांच करने के लिए, getStringExtra(SearchManager.ACTION_MSG) का इस्तेमाल करें. अगर चुने गए सुझाव के लिए डेटा मौजूद नहीं है, तो ऐक्शन कुंजी को अनदेखा कर दिया जाता है.

उदाहरण:
एक्सएमएल फ़ाइल को res/xml/searchable.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>