অনুসন্ধান কনফিগারেশন

কম্পোজ পদ্ধতিটি চেষ্টা করুন
অ্যান্ড্রয়েডের জন্য Jetpack Compose হলো প্রস্তাবিত UI টুলকিট। Compose-এ কীভাবে সার্চ ফাংশন যুক্ত করবেন তা জানুন।

অ্যান্ড্রয়েড সিস্টেমের সহায়তায় সার্চ বাস্তবায়ন করতে—অর্থাৎ, কোনো অ্যাক্টিভিটিতে সার্চ কোয়েরি পাঠাতে এবং সার্চ সাজেশন প্রদান করতে—আপনার অ্যাপ্লিকেশনকে অবশ্যই একটি XML ফাইলের আকারে সার্চ কনফিগারেশন প্রদান করতে হবে।

এই পৃষ্ঠায় সার্চ কনফিগারেশন ফাইলের সিনট্যাক্স এবং ব্যবহার বর্ণনা করা হয়েছে। আপনার অ্যাপ্লিকেশনে সার্চ ফিচারগুলো কীভাবে প্রয়োগ করবেন সে সম্পর্কে আরও তথ্যের জন্য, “একটি সার্চ ইন্টারফেস তৈরি করুন” দেখুন।

ফাইলের অবস্থান:
res/xml/ filename .xml
অ্যান্ড্রয়েড ফাইলের নামটিকে রিসোর্স আইডি হিসেবে ব্যবহার করে।
সিনট্যাক্স:
<?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:label
স্ট্রিং রিসোর্স । (আবশ্যক।) আপনার অ্যাপ্লিকেশনের নাম। এটি অবশ্যই আপনার <activity> বা <application> ম্যানিফেস্ট এলিমেন্টের android:label অ্যাট্রিবিউটে ব্যবহৃত নামের সাথে একই হতে হবে। এই লেবেলটি ব্যবহারকারীর কাছে কেবল তখনই দৃশ্যমান হয় যখন আপনি android:includeInGlobalSearch কে "true" সেট করেন, সেক্ষেত্রে, এই লেবেলটি সিস্টেমের সার্চ সেটিংসে আপনার অ্যাপ্লিকেশনকে একটি অনুসন্ধানযোগ্য আইটেম হিসেবে শনাক্ত করতে ব্যবহৃত হয়।
android:hint
স্ট্রিং রিসোর্স । (প্রস্তাবিত।) সার্চ টেক্সট ফিল্ডে কোনো টেক্সট প্রবেশ করানো না হলে যে লেখাটি প্রদর্শিত হবে। এটি ব্যবহারকারীকে কোন কন্টেন্ট সার্চ করা যাবে সে সম্পর্কে একটি ইঙ্গিত দেয়। অন্যান্য অ্যান্ড্রয়েড অ্যাপ্লিকেশনের সাথে সামঞ্জস্য রাখতে, android:hint এর জন্য স্ট্রিংটি "Search <content-or-product> " হিসেবে ফরম্যাট করুন। উদাহরণস্বরূপ, "Search songs and artists" বা "Search YouTube"।
android:searchMode
কীওয়ার্ড । এটি অতিরিক্ত মোড সেট করে যা সার্চ উপস্থাপনা নিয়ন্ত্রণ করে। উপলব্ধ মোডগুলো নির্ধারণ করে যে, কোনো কাস্টম সাজেশন ফোকাস পেলে কোয়েরি টেক্সটটি কীভাবে পুনর্লিখন করতে হবে। নিম্নলিখিত মোড ভ্যালুগুলো গ্রহণ করা হয়:
মূল্য বর্ণনা
"queryRewriteFromData" কোয়েরি টেক্সট পুনর্লিখন করতে SUGGEST_COLUMN_INTENT_DATA কলামের মান ব্যবহার করুন। এটি শুধুমাত্র তখনই ব্যবহার করা আবশ্যক যখন SUGGEST_COLUMN_INTENT_DATA এর মানগুলো ব্যবহারকারীর পরিদর্শন এবং সম্পাদনার জন্য উপযুক্ত হয়, যেমন HTTP URI।
"queryRewriteFromText" কোয়েরি টেক্সট পুনর্লিখন করতে SUGGEST_COLUMN_TEXT_1 কলামের মানটি ব্যবহার করুন।

আরও তথ্যের জন্য, 'কাস্টম সার্চ সাজেশন যোগ করুন'-এর অধীনে কোয়েরি টেক্সট পুনর্লিখন সম্পর্কিত ডকুমেন্টেশন দেখুন।

android:searchButtonText
স্ট্রিং রিসোর্স । যে বাটনটি সার্চ সম্পাদন করে, তাতে প্রদর্শিত হওয়ার জন্য টেক্সট। ডিফল্টরূপে, বাটনটি একটি সার্চ আইকন (একটি ম্যাগনিফাইং গ্লাস) দেখায়, যা আন্তর্জাতিকীকরণের জন্য আদর্শ। তাই, সার্চ ছাড়া অন্য কোনো কাজ, যেমন ওয়েব ব্রাউজারে ইউআরএল রিকোয়েস্ট, না হলে বাটনটি পরিবর্তন করার জন্য এই অ্যাট্রিবিউটটি ব্যবহার করবেন না।
android:inputType
কীওয়ার্ড । এটি কোন ধরনের ইনপুট পদ্ধতি ব্যবহার করতে হবে তা নির্ধারণ করে, যেমন সফট কিবোর্ডের ধরন। বেশিরভাগ অনুসন্ধানের ক্ষেত্রে, যেখানে মুক্ত-ফর্মের টেক্সট প্রত্যাশিত, সেখানে এই অ্যাট্রিবিউটটির প্রয়োজন নেই। এই অ্যাট্রিবিউটের জন্য উপযুক্ত মানগুলির তালিকার জন্য inputType দেখুন।
android:imeOptions
কীওয়ার্ড । ইনপুট পদ্ধতির জন্য অতিরিক্ত বিকল্প সরবরাহ করে। বেশিরভাগ অনুসন্ধানের ক্ষেত্রে, যেখানে মুক্ত-ফর্মের টেক্সট প্রত্যাশিত, সেখানে আপনার এই অ্যাট্রিবিউটের প্রয়োজন নেই। ডিফল্ট IME হলো actionSearch , যা সফট কিবোর্ডে ক্যারেজ রিটার্নের পরিবর্তে "সার্চ" বাটন প্রদান করে। এই অ্যাট্রিবিউটের জন্য উপযুক্ত মানগুলির তালিকার জন্য imeOptions দেখুন।

অনুসন্ধানের পরামর্শের বৈশিষ্ট্য

সার্চ সাজেশন তৈরি করার জন্য যদি আপনি কোনো কন্টেন্ট প্রোভাইডার নির্ধারণ করেন, তাহলে কন্টেন্ট প্রোভাইডারের সাথে যোগাযোগ কনফিগার করার জন্য আপনাকে অতিরিক্ত অ্যাট্রিবিউট নির্ধারণ করতে হবে। সার্চ সাজেশন দেওয়ার সময়, আপনার নিম্নলিখিত <searchable> অ্যাট্রিবিউটগুলোর কয়েকটি প্রয়োজন হবে:


android:searchSuggestAuthority
স্ট্রিং । (সার্চ সাজেশন দেওয়ার জন্য আবশ্যক।) এই মানটি অবশ্যই অ্যান্ড্রয়েড ম্যানিফেস্টের <provider> এলিমেন্টের android:authorities অ্যাট্রিবিউটে দেওয়া অথরিটি স্ট্রিং-এর সাথে মিলতে হবে।
android:searchSuggestPath
স্ট্রিং । এই পাথটি সাজেশন্স কোয়েরি Uri এর একটি অংশ হিসেবে ব্যবহৃত হয়, যা প্রিফিক্স ও অথরিটির পরে এবং স্ট্যান্ডার্ড সাজেশন্স পাথের আগে থাকে। এটি শুধুমাত্র তখনই প্রয়োজন হয়, যখন আপনার একটিমাত্র কন্টেন্ট প্রোভাইডার বিভিন্ন ধরনের সাজেশন্স—যেমন বিভিন্ন ডেটা টাইপের জন্য—প্রদান করে এবং সাজেশন্স কোয়েরিগুলো পাওয়ার পর সেগুলোর মধ্যে পার্থক্য নিরূপণ করার জন্য আপনার একটি উপায় প্রয়োজন হয়।
android:searchSuggestSelection
স্ট্রিং । এই মানটি আপনার কোয়েরি ফাংশনে selection প্যারামিটার হিসেবে পাঠানো হয়। সাধারণত এটি আপনার ডাটাবেসের জন্য একটি WHERE ক্লজ হয়, এবং ব্যবহারকারীর প্রবেশ করানো আসল কোয়েরি স্ট্রিং-এর জন্য প্লেসহোল্ডার হিসেবে এতে অবশ্যই একটি প্রশ্নবোধক চিহ্ন থাকতে হবে—উদাহরণস্বরূপ, "query=?" । তবে, আপনি selectionArgs প্যারামিটার ব্যবহার করে কোয়েরি টেক্সট পাঠানো শুরু করতে যেকোনো নন-নাল (non-null) মানও ব্যবহার করতে পারেন, এবং তারপর selection প্যারামিটারটিকে উপেক্ষা করতে পারেন।
android:searchSuggestIntentAction
স্ট্রিং । যখন কোনো ব্যবহারকারী একটি কাস্টম সার্চ সাজেশনে—যেমন "android.intent.action.VIEW" ট্যাপ করেন, তখন যে ডিফল্ট ইন্টেন্ট অ্যাকশনটি ব্যবহৃত হবে। যদি SUGGEST_COLUMN_INTENT_ACTION কলাম ব্যবহার করে নির্বাচিত সাজেশন দ্বারা এই মানটি ওভাররাইড না করা হয়, তাহলে ব্যবহারকারী সাজেশনটিতে ট্যাপ করলে মানটি Intent অ্যাকশন ফিল্ডে স্থাপন করা হয়।
android:searchSuggestIntentData
স্ট্রিং । ব্যবহারকারী যখন কোনো কাস্টম সার্চ সাজেশনে ট্যাপ করেন, তখন ব্যবহৃত ডিফল্ট ইন্টেন্ট ডেটা। যদি নির্বাচিত সাজেশন দ্বারা— SUGGEST_COLUMN_INTENT_DATA কলামের মাধ্যমে—এটি ওভাররাইড না করা হয়, তাহলে ব্যবহারকারী কোনো সাজেশনে ট্যাপ করলে এই মানটি Intent ডেটা ফিল্ডে স্থাপন করা হয়।
android:searchSuggestThreshold
পূর্ণসংখ্যা । সাজেশন খোঁজার জন্য প্রয়োজনীয় অক্ষরের সর্বনিম্ন সংখ্যা। এটি শুধু নিশ্চিত করে যে, সিস্টেম আপনার কন্টেন্ট প্রোভাইডারকে নির্ধারিত সীমার চেয়ে ছোট কোনো কিছুর জন্য কোয়েরি করবে না। এর ডিফল্ট মান হলো ০।

সার্চ সাজেশনের জন্য উপরোক্ত অ্যাট্রিবিউটগুলো সম্পর্কে আরও তথ্যের জন্য, কাস্টম সার্চ সাজেশন যোগ করা এবং কাস্টম সাজেশন যোগ করার ডকুমেন্টেশন দেখুন।

দ্রুত অনুসন্ধান বাক্সের বৈশিষ্ট্য

কুইক সার্চ বক্সে আপনার কাস্টম সার্চ সাজেশনগুলো উপলব্ধ করতে, আপনার নিম্নলিখিত <searchable> অ্যাট্রিবিউটগুলোর কয়েকটি প্রয়োজন হবে:


android:includeInGlobalSearch
বুলিয়ান । (কুইক সার্চ বক্সে অনুসন্ধানের পরামর্শ দেওয়ার জন্য এটি আবশ্যক।) যদি আপনি চান আপনার পরামর্শগুলো বিশ্বব্যাপী অ্যাক্সেসযোগ্য কুইক সার্চ বক্সে অন্তর্ভুক্ত হোক, তবে এটিকে "true" সেট করুন। কুইক সার্চ বক্সে আপনার পরামর্শগুলো প্রদর্শিত হওয়ার আগে ব্যবহারকারীকে অবশ্যই সিস্টেম সার্চ সেটিংসে আপনার অ্যাপ্লিকেশনটিকে একটি অনুসন্ধানযোগ্য আইটেম হিসেবে সক্রিয় করতে হবে।
android:searchSettingsDescription
স্ট্রিং রিসোর্স । এটি কুইক সার্চ বক্সে আপনার দেওয়া সার্চ সাজেশনের একটি সংক্ষিপ্ত বিবরণ প্রদান করে, যা আপনার অ্যাপ্লিকেশনের সার্চযোগ্য আইটেম এন্ট্রিতে প্রদর্শিত হয়। আপনার বিবরণে অবশ্যই অনুসন্ধানযোগ্য বিষয়বস্তুকে সংক্ষিপ্তভাবে বর্ণনা করতে হবে। উদাহরণস্বরূপ, একটি মিউজিক অ্যাপ্লিকেশনের জন্য "শিল্পী, অ্যালবাম এবং ট্র্যাক", অথবা একটি নোটপ্যাড অ্যাপ্লিকেশনের জন্য "সংরক্ষিত নোট"।
android:queryAfterZeroResults
বুলিয়ান । যদি আপনি চান যে আপনার কন্টেন্ট প্রোভাইডারটি এমন সব কোয়েরির সুপারসেটের জন্য কল করা হোক যেগুলো আগে কোনো ফলাফল দেয়নি, তাহলে এটিকে "true" সেট করুন। উদাহরণস্বরূপ, যদি আপনার কন্টেন্ট প্রোভাইডার 'bo'-এর জন্য শূন্য ফলাফল দেয়, তবে '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 ইন্টেন্টের প্রাথমিক কোয়েরি হিসাবে সরবরাহ করা হয়। এর মান অবশ্যই ১ বা তার বেশি হতে হবে। ইন্টেন্ট থেকে ফলাফল পেতে EXTRA_RESULTS ব্যবহার করুন। এটি সরবরাহ করা না হলে, রিকগনাইজার কতগুলো ফলাফল ফেরত দেবে তা বেছে নেয়।
<actionkey>
একটি সার্চ অ্যাকশনের জন্য একটি ডিভাইস কী এবং এর আচরণ নির্ধারণ করে। একটি সার্চ অ্যাকশন ডিভাইসের কোনো বোতামে ট্যাপ করার ফলে, বর্তমান কোয়েরি বা ফোকাস করা সাজেশনের উপর ভিত্তি করে একটি বিশেষ আচরণ প্রদান করে। উদাহরণস্বরূপ, কন্টাক্টস অ্যাপ্লিকেশনটি ‘কল’ বোতামে ট্যাপ করা হলে, বর্তমানে ফোকাস করা কন্ট্যাক্ট সাজেশনে একটি ফোন কল শুরু করার জন্য একটি সার্চ অ্যাকশন প্রদান করে।

সব ডিভাইসে সব অ্যাকশন কী পাওয়া যায় না, এবং সব কী এইভাবে ওভাররাইড করা যায় না। উদাহরণস্বরূপ, "হোম" কী ওভাররাইড করা যায় না এবং এটি দিয়ে সবসময় হোম স্ক্রিনে ফিরে আসতে হয়। এছাড়াও, সার্চ কোয়েরি টাইপ করার জন্য প্রয়োজনীয় কোনো কী-এর জন্য অ্যাকশন কী নির্ধারণ করবেন না। এর ফলে উপলব্ধ এবং যুক্তিসঙ্গত অ্যাকশন কী-গুলো কল বাটন এবং মেনু বাটনের মধ্যে সীমাবদ্ধ হয়ে যায়।

কী (key) নির্ধারণ করার জন্য আপনাকে অবশ্যই 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 অ্যাট্রিবিউট ব্যবহার করার পরিবর্তে, আপনার কন্টেন্ট প্রোভাইডারের প্রতিটি এন্ট্রি তার নিজস্ব অ্যাকশন মেসেজ প্রদান করে।

প্রথমে, প্রতিটি সাজেশনের জন্য একটি অ্যাকশন মেসেজ দেওয়ার উদ্দেশ্যে আপনাকে আপনার কন্টেন্ট প্রোভাইডারে একটি কলাম সংজ্ঞায়িত করতে হবে, এবং তারপর এই অ্যাট্রিবিউটে সেই কলামের নামটি প্রদান করতে হবে। সিস্টেম আপনার সাজেশন কার্সারটি দেখে, এখানে দেওয়া স্ট্রিংটি ব্যবহার করে আপনার অ্যাকশন মেসেজ কলামটি নির্বাচন করে, এবং তারপর কার্সার থেকে অ্যাকশন মেসেজ স্ট্রিংটি নির্বাচন করে। সাজেশনের জন্য আপনার সংজ্ঞায়িত করা অ্যাকশনটি ব্যবহার করে, সিস্টেম যে ইন্টেন্টটি আপনার সার্চেবল অ্যাক্টিভিটিতে পাঠায়, সেই ইন্টেন্টে এই স্ট্রিংটি যুক্ত করা হয়। স্ট্রিংটি পরীক্ষা করার জন্য, getStringExtra(SearchManager.ACTION_MSG) ব্যবহার করুন। যদি নির্বাচিত সাজেশনের জন্য ডেটা বিদ্যমান না থাকে, তাহলে অ্যাকশন কী-টি উপেক্ষা করা হয়।

উদাহরণ:
XML ফাইলটি 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>