Android TV, Android सर्च इंटरफ़ेस का इस्तेमाल करता है का इस्तेमाल, इंस्टॉल किए गए ऐप्लिकेशन से कॉन्टेंट का डेटा वापस पाने और उपयोगकर्ता को खोज के नतीजे दिखाने के लिए किया जाता है. आपके ऐप्लिकेशन का इन नतीजों में कॉन्टेंट डेटा शामिल किया जा सकता है, ताकि उपयोगकर्ता इसमें मौजूद कॉन्टेंट को तुरंत ऐक्सेस कर सके आपका ऐप्लिकेशन.
आपके ऐप्लिकेशन में Android TV के लिए डेटा फ़ील्ड मौजूद होने चाहिए, ताकि Android TV, सुझाई गई खोज क्वेरी जनरेट कर सके
उपयोगकर्ता के खोज डायलॉग में वर्ण डालते ही,
होने वाले नतीजे दिखाए जा सकते हैं. ऐसा करने के लिए, आपके ऐप्लिकेशन को
सेवा देने वाली कॉन्टेंट देने वाली कंपनी
सुझाव के साथ एक
searchable.xml
कॉन्फ़िगरेशन फ़ाइल जो कॉन्टेंट के बारे में बताती है
Android TV के लिए उपलब्ध कराने वाली कंपनी और अन्य ज़रूरी जानकारी. आपको एक ऐसी गतिविधि की भी आवश्यकता होगी जो
वह इंटेंट जो उपयोगकर्ता के सुझाए गए खोज के नतीजे को चुनने पर ट्रिगर होता है. इसके लिए
ज़्यादा जानकारी के लिए, जोड़ें
पसंद के मुताबिक खोज से जुड़े सुझाव. इस गाइड में Android TV ऐप्लिकेशन के बारे में खास जानकारी दी गई है.
इस गाइड को पढ़ने से पहले, पक्का करें कि आपको Search API गाइड. साथ ही, खोजने की सुविधा जोड़ें देखें.
इस गाइड में सैंपल कोड Leanback सैंपल ऐप्लिकेशन को अपनाएं.
कॉलम पहचानें
SearchManager
, डेटा फ़ील्ड के बारे में बताता है. इसके लिए, उन्हें इस तरह से दिखाया जाता है
स्थानीय डेटाबेस के कॉलम में हो सकती है. आपका डेटा किसी भी फ़ॉर्मैट में हो, आपको अपने डेटा फ़ील्ड को
होता है. ये कॉलम आम तौर पर उस क्लास में होते हैं जो आपके कॉन्टेंट का डेटा ऐक्सेस करती है. ऐसी जानकारी के लिए जिसका इस्तेमाल
एक क्लास, जो आपके मौजूदा डेटा को ज़रूरी फ़ील्ड से मैप करती है, देखें
सुझाव वाली टेबल बनाई जा रही है.
SearchManager
क्लास में, Android TV के लिए कई कॉलम शामिल हैं. इनमें से कुछ
ज़्यादा ज़रूरी कॉलम के बारे में नीचे टेबल में बताया गया है.
वैल्यू | ब्यौरा |
---|---|
SUGGEST_COLUMN_TEXT_1 |
आपके कॉन्टेंट का नाम (ज़रूरी है) |
SUGGEST_COLUMN_TEXT_2 |
आपके कॉन्टेंट का टेक्स्ट ब्यौरा |
SUGGEST_COLUMN_RESULT_CARD_IMAGE |
आपके कॉन्टेंट के लिए कोई इमेज, पोस्टर या कवर |
SUGGEST_COLUMN_CONTENT_TYPE |
आपके मीडिया का MIME टाइप |
SUGGEST_COLUMN_VIDEO_WIDTH |
मीडिया की रिज़ॉल्यूशन चौड़ाई |
SUGGEST_COLUMN_VIDEO_HEIGHT |
आपके मीडिया की रिज़ॉल्यूशन ऊंचाई |
SUGGEST_COLUMN_PRODUCTION_YEAR |
आपके कॉन्टेंट के प्रोडक्शन का साल (ज़रूरी है) |
SUGGEST_COLUMN_DURATION |
आपके मीडिया का कुल समय (मिलीसेकंड में) (ज़रूरी है) |
खोज फ़्रेमवर्क में ये कॉलम होने चाहिए:
जब आपके कॉन्टेंट के लिए इन कॉलम की वैल्यू, उसी कॉन्टेंट की वैल्यू से मैच करती हैं जो जो Google सर्वर द्वारा खोजे जाते हैं, सिस्टम ज़्यादा जानकारी में आपके ऐप्लिकेशन का डीप लिंक कॉन्टेंट देखने के साथ-साथ, कॉन्टेंट उपलब्ध कराने वाली अन्य कंपनियों के ऐप्लिकेशन के लिंक भी दिखेंगे. इसकी चर्चा यहां ज़्यादा की गई है ज़्यादा जानकारी वाली स्क्रीन में आपके ऐप्लिकेशन का डीप लिंक सेक्शन में.
आपके ऐप्लिकेशन की डेटाबेस क्लास, कॉलम को इस तरह तय कर सकती है:
Kotlin
class VideoDatabase { companion object { // The columns we'll include in the video database table val KEY_NAME = SearchManager.SUGGEST_COLUMN_TEXT_1 val KEY_DESCRIPTION = SearchManager.SUGGEST_COLUMN_TEXT_2 val KEY_ICON = SearchManager.SUGGEST_COLUMN_RESULT_CARD_IMAGE val KEY_DATA_TYPE = SearchManager.SUGGEST_COLUMN_CONTENT_TYPE val KEY_IS_LIVE = SearchManager.SUGGEST_COLUMN_IS_LIVE val KEY_VIDEO_WIDTH = SearchManager.SUGGEST_COLUMN_VIDEO_WIDTH val KEY_VIDEO_HEIGHT = SearchManager.SUGGEST_COLUMN_VIDEO_HEIGHT val KEY_AUDIO_CHANNEL_CONFIG = SearchManager.SUGGEST_COLUMN_AUDIO_CHANNEL_CONFIG val KEY_PURCHASE_PRICE = SearchManager.SUGGEST_COLUMN_PURCHASE_PRICE val KEY_RENTAL_PRICE = SearchManager.SUGGEST_COLUMN_RENTAL_PRICE val KEY_RATING_STYLE = SearchManager.SUGGEST_COLUMN_RATING_STYLE val KEY_RATING_SCORE = SearchManager.SUGGEST_COLUMN_RATING_SCORE val KEY_PRODUCTION_YEAR = SearchManager.SUGGEST_COLUMN_PRODUCTION_YEAR val KEY_COLUMN_DURATION = SearchManager.SUGGEST_COLUMN_DURATION val KEY_ACTION = SearchManager.SUGGEST_COLUMN_INTENT_ACTION ... } ... }
Java
public class VideoDatabase { // The columns we'll include in the video database table public static final String KEY_NAME = SearchManager.SUGGEST_COLUMN_TEXT_1; public static final String KEY_DESCRIPTION = SearchManager.SUGGEST_COLUMN_TEXT_2; public static final String KEY_ICON = SearchManager.SUGGEST_COLUMN_RESULT_CARD_IMAGE; public static final String KEY_DATA_TYPE = SearchManager.SUGGEST_COLUMN_CONTENT_TYPE; public static final String KEY_IS_LIVE = SearchManager.SUGGEST_COLUMN_IS_LIVE; public static final String KEY_VIDEO_WIDTH = SearchManager.SUGGEST_COLUMN_VIDEO_WIDTH; public static final String KEY_VIDEO_HEIGHT = SearchManager.SUGGEST_COLUMN_VIDEO_HEIGHT; public static final String KEY_AUDIO_CHANNEL_CONFIG = SearchManager.SUGGEST_COLUMN_AUDIO_CHANNEL_CONFIG; public static final String KEY_PURCHASE_PRICE = SearchManager.SUGGEST_COLUMN_PURCHASE_PRICE; public static final String KEY_RENTAL_PRICE = SearchManager.SUGGEST_COLUMN_RENTAL_PRICE; public static final String KEY_RATING_STYLE = SearchManager.SUGGEST_COLUMN_RATING_STYLE; public static final String KEY_RATING_SCORE = SearchManager.SUGGEST_COLUMN_RATING_SCORE; public static final String KEY_PRODUCTION_YEAR = SearchManager.SUGGEST_COLUMN_PRODUCTION_YEAR; public static final String KEY_COLUMN_DURATION = SearchManager.SUGGEST_COLUMN_DURATION; public static final String KEY_ACTION = SearchManager.SUGGEST_COLUMN_INTENT_ACTION; ...
जब SearchManager
कॉलम से अपने डेटा फ़ील्ड पर मैप बनाया जाता है, तो
हर लाइन को यूनीक आईडी देने के लिए, _ID
की जानकारी भी देनी होगी.
Kotlin
companion object { .... private fun buildColumnMap(): MapS<tring, String> { return mapOf( KEY_NAME to KEY_NAME, KEY_DESCRIPTION to KEY_DESCRIPTION, KEY_ICON to KEY_ICON, KEY_DATA_TYPE to KEY_DATA_TYPE, KEY_IS_LIVE to KEY_IS_LIVE, KEY_VIDEO_WIDTH to KEY_VIDEO_WIDTH, KEY_VIDEO_HEIGHT to KEY_VIDEO_HEIGHT, KEY_AUDIO_CHANNEL_CONFIG to KEY_AUDIO_CHANNEL_CONFIG, KEY_PURCHASE_PRICE to KEY_PURCHASE_PRICE, KEY_RENTAL_PRICE to KEY_RENTAL_PRICE, KEY_RATING_STYLE to KEY_RATING_STYLE, KEY_RATING_SCORE to KEY_RATING_SCORE, KEY_PRODUCTION_YEAR to KEY_PRODUCTION_YEAR, KEY_COLUMN_DURATION to KEY_COLUMN_DURATION, KEY_ACTION to KEY_ACTION, BaseColumns._ID to ("rowid AS " + BaseColumns._ID), SearchManager.SUGGEST_COLUMN_INTENT_DATA_ID to ("rowid AS " + SearchManager.SUGGEST_COLUMN_INTENT_DATA_ID), SearchManager.SUGGEST_COLUMN_SHORTCUT_ID to ("rowid AS " + SearchManager.SUGGEST_COLUMN_SHORTCUT_ID) ) } }
Java
... private static HashMap<String, String> buildColumnMap() { HashMap<String, String> map = new HashMap<String, String>(); map.put(KEY_NAME, KEY_NAME); map.put(KEY_DESCRIPTION, KEY_DESCRIPTION); map.put(KEY_ICON, KEY_ICON); map.put(KEY_DATA_TYPE, KEY_DATA_TYPE); map.put(KEY_IS_LIVE, KEY_IS_LIVE); map.put(KEY_VIDEO_WIDTH, KEY_VIDEO_WIDTH); map.put(KEY_VIDEO_HEIGHT, KEY_VIDEO_HEIGHT); map.put(KEY_AUDIO_CHANNEL_CONFIG, KEY_AUDIO_CHANNEL_CONFIG); map.put(KEY_PURCHASE_PRICE, KEY_PURCHASE_PRICE); map.put(KEY_RENTAL_PRICE, KEY_RENTAL_PRICE); map.put(KEY_RATING_STYLE, KEY_RATING_STYLE); map.put(KEY_RATING_SCORE, KEY_RATING_SCORE); map.put(KEY_PRODUCTION_YEAR, KEY_PRODUCTION_YEAR); map.put(KEY_COLUMN_DURATION, KEY_COLUMN_DURATION); map.put(KEY_ACTION, KEY_ACTION); map.put(BaseColumns._ID, "rowid AS " + BaseColumns._ID); map.put(SearchManager.SUGGEST_COLUMN_INTENT_DATA_ID, "rowid AS " + SearchManager.SUGGEST_COLUMN_INTENT_DATA_ID); map.put(SearchManager.SUGGEST_COLUMN_SHORTCUT_ID, "rowid AS " + SearchManager.SUGGEST_COLUMN_SHORTCUT_ID); return map; } ...
पिछले उदाहरण में, SUGGEST_COLUMN_INTENT_DATA_ID
पर मैपिंग पर ध्यान दें
फ़ील्ड में डालें. यह यूआरआई का वह हिस्सा है जो इसमें मौजूद डेटा के लिए यूनीक कॉन्टेंट की ओर इशारा करता है
पंक्ति—यह यूआरआई का आखिरी हिस्सा है, जो बताता है कि कॉन्टेंट कहां स्टोर किया गया है. यूआरआई का पहला हिस्सा,
जब टेबल की सभी पंक्तियों में एक ही होता है, तो उसे
searchable.xml
फ़ाइल
android:searchSuggestIntentData
एट्रिब्यूट की वैल्यू, जैसा कि इसमें बताया गया है
खोज से जुड़े सुझावों को मैनेज करें सेक्शन.
अगर यूआरआई का पहला हिस्सा
तालिका, उस मान को SUGGEST_COLUMN_INTENT_DATA
फ़ील्ड के साथ मैप करें.
जब उपयोगकर्ता इस कॉन्टेंट को चुनता है, तो ट्रिगर करने वाला इंटेंट,
SUGGEST_COLUMN_INTENT_DATA_ID
का कॉम्बिनेशन
और android:searchSuggestIntentData
एट्रिब्यूट या
SUGGEST_COLUMN_INTENT_DATA
फ़ील्ड की वैल्यू.
खोज से जुड़े सुझाव का डेटा दें
कॉन्टेंट प्रोवाइडर लागू करना
का इस्तेमाल करके Android TV के खोज वाले डायलॉग बॉक्स में, खोज के लिए इस्तेमाल हुए शब्द से जुड़े सुझाव दिखाएं. सिस्टम आपके कॉन्टेंट से जुड़ी क्वेरी करता है
सुझाव देने के लिए हर बार query()
तरीके को कॉल करें
टाइप किया जाता है. query()
को लागू करने पर, आपका कॉन्टेंट
कंपनी आपके सुझाव से जुड़ा डेटा खोजता है और Cursor
की ओर पॉइंट करता है, जो
इन पंक्तियों को चुनें, जिन्हें आपने सुझावों के लिए तय किया है.
Kotlin
fun query(uri: Uri, projection: Array<String>, selection: String, selectionArgs: Array<String>, sortOrder: String): Cursor { // Use the UriMatcher to see what kind of query we have and format the db query accordingly when (URI_MATCHER.match(uri)) { SEARCH_SUGGEST -> { Log.d(TAG, "search suggest: ${selectionArgs[0]} URI: $uri") if (selectionArgs == null) { throw IllegalArgumentException( "selectionArgs must be provided for the Uri: $uri") } return getSuggestions(selectionArgs[0]) } else -> throw IllegalArgumentException("Unknown Uri: $uri") } } private fun getSuggestions(query: String): Cursor { val columns = arrayOf<String>( BaseColumns._ID, VideoDatabase.KEY_NAME, VideoDatabase.KEY_DESCRIPTION, VideoDatabase.KEY_ICON, VideoDatabase.KEY_DATA_TYPE, VideoDatabase.KEY_IS_LIVE, VideoDatabase.KEY_VIDEO_WIDTH, VideoDatabase.KEY_VIDEO_HEIGHT, VideoDatabase.KEY_AUDIO_CHANNEL_CONFIG, VideoDatabase.KEY_PURCHASE_PRICE, VideoDatabase.KEY_RENTAL_PRICE, VideoDatabase.KEY_RATING_STYLE, VideoDatabase.KEY_RATING_SCORE, VideoDatabase.KEY_PRODUCTION_YEAR, VideoDatabase.KEY_COLUMN_DURATION, VideoDatabase.KEY_ACTION, SearchManager.SUGGEST_COLUMN_INTENT_DATA_ID ) return videoDatabase.getWordMatch(query.toLowerCase(), columns) }
Java
@Override public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { // Use the UriMatcher to see what kind of query we have and format the db query accordingly switch (URI_MATCHER.match(uri)) { case SEARCH_SUGGEST: Log.d(TAG, "search suggest: " + selectionArgs[0] + " URI: " + uri); if (selectionArgs == null) { throw new IllegalArgumentException( "selectionArgs must be provided for the Uri: " + uri); } return getSuggestions(selectionArgs[0]); default: throw new IllegalArgumentException("Unknown Uri: " + uri); } } private Cursor getSuggestions(String query) { query = query.toLowerCase(); String[] columns = new String[]{ BaseColumns._ID, VideoDatabase.KEY_NAME, VideoDatabase.KEY_DESCRIPTION, VideoDatabase.KEY_ICON, VideoDatabase.KEY_DATA_TYPE, VideoDatabase.KEY_IS_LIVE, VideoDatabase.KEY_VIDEO_WIDTH, VideoDatabase.KEY_VIDEO_HEIGHT, VideoDatabase.KEY_AUDIO_CHANNEL_CONFIG, VideoDatabase.KEY_PURCHASE_PRICE, VideoDatabase.KEY_RENTAL_PRICE, VideoDatabase.KEY_RATING_STYLE, VideoDatabase.KEY_RATING_SCORE, VideoDatabase.KEY_PRODUCTION_YEAR, VideoDatabase.KEY_COLUMN_DURATION, VideoDatabase.KEY_ACTION, SearchManager.SUGGEST_COLUMN_INTENT_DATA_ID }; return videoDatabase.getWordMatch(query, columns); } ...
आपकी मेनिफ़ेस्ट फ़ाइल में, कॉन्टेंट देने वाले को खास सुविधा मिलती है. होने के बजाय
गतिविधि के तौर पर टैग किया जाता है, तो इसकी जानकारी
<provider>
. कॉन्टेंट बनाने
प्रोवाइडर ने सिस्टम को यह बताने के लिए android:authorities
एट्रिब्यूट शामिल किया है कि
नेमस्पेस का इस्तेमाल करें. साथ ही, आपको इसके android:exported
एट्रिब्यूट को
"true"
ताकि Android वैश्विक खोज इससे लौटाए गए नतीजों का इस्तेमाल कर सके.
<provider android:name="com.example.android.tvleanback.VideoContentProvider" android:authorities="com.example.android.tvleanback" android:exported="true" />
खोज से जुड़े सुझावों को मैनेज करना
आपके ऐप्लिकेशन में
res/xml/searchable.xml
फ़ाइल का इस्तेमाल करें.
res/xml/searchable.xml
फ़ाइल में, इसे शामिल करें
android:searchSuggestAuthority
एट्रिब्यूट का इस्तेमाल करके, सिस्टम को आपके
कॉन्टेंट देने वाला. यह आपके
android:authorities
<provider>
का एट्रिब्यूट
आपकी AndroidManifest.xml
फ़ाइल में मौजूद एलिमेंट.
लेबल भी शामिल करें, जो ऐप्लिकेशन का नाम है. सिस्टम की खोज सेटिंग, गिनती करते समय इस लेबल का इस्तेमाल करती हैं में खोजा जा सकता है.
searchable.xml
फ़ाइल
यह भी शामिल होना चाहिए
"android.intent.action.VIEW"
वैल्यू वाला android:searchSuggestIntentAction
का इस्तेमाल करें. यह इंटेंट से अलग है
खोज के लिए शब्द देने के लिए कार्रवाई. इसकी जानकारी नीचे दी गई सेक्शन में दी गई है.
सुझावों के लिए इंटेंट कार्रवाई का एलान करने के दूसरे तरीकों के लिए,
देखें एलान किया गया है
इंटेंट कार्रवाई पर टैप करें.
इंटेंट कार्रवाई के साथ, आपके ऐप्लिकेशन को इंटेंट डेटा भी देना होगा, जिसे आप
android:searchSuggestIntentData
एट्रिब्यूट की वैल्यू सबमिट करें. यह यूआरआई का पहला हिस्सा होता है, जो
जिसमें यूआरआई के उस हिस्से की जानकारी दी गई है जो मैपिंग टेबल की सभी पंक्तियों के लिए समान है
कॉन्टेंट. हर पंक्ति के लिए यूनीक यूआरआई का हिस्सा, SUGGEST_COLUMN_INTENT_DATA_ID
फ़ील्ड की मदद से तय किया जाता है,
जैसा कि कॉलम की पहचान करें सेक्शन में बताया गया है.
सुझावों के लिए इंटेंट डेटा की जानकारी देने के अन्य तरीकों के लिए, देखें
एलान किया जा रहा है
इंटेंट डेटा.
android:searchSuggestSelection=" ?"
एट्रिब्यूट, दी गई वैल्यू के बारे में बताता है
query()
के selection
पैरामीटर के तौर पर
तरीका. प्रश्नवाचक चिह्न (?
) मान को क्वेरी के टेक्स्ट से बदल दिया जाता है.
अंत में, आपको
"true"
वैल्यू वाली android:includeInGlobalSearch
एट्रिब्यूट. यहां एक उदाहरण दिया गया है
searchable.xml
फ़ाइल:
<searchable xmlns:android="http://schemas.android.com/apk/res/android" android:label="@string/search_label" android:hint="@string/search_hint" android:searchSettingsDescription="@string/settings_description" android:searchSuggestAuthority="com.example.android.tvleanback" android:searchSuggestIntentAction="android.intent.action.VIEW" android:searchSuggestIntentData="content://com.example.android.tvleanback/video_database_leanback" android:searchSuggestSelection=" ?" android:searchSuggestThreshold="1" android:includeInGlobalSearch="true"> </searchable>
खोज के लिए इस्तेमाल किए गए शब्दों को मैनेज करना
जैसे ही खोज डायलॉग में कोई ऐसा शब्द हो जो आपके ऐप्लिकेशन के किसी कॉलम के मान से मेल खाता हो, जैसे कि
जैसा कि कॉलम की पहचान करें सेक्शन में बताया गया है, सिस्टम
ACTION_SEARCH
इंटेंट.
आपके ऐप्लिकेशन की वह गतिविधि जो इसे मैनेज करती है
इंटेंट, दिए गए शब्द से कॉलम की रिपॉज़िटरी खोजता है और उसकी सूची दिखाता है
के कॉन्टेंट आइटम होने चाहिए. अपनी AndroidManifest.xml
फ़ाइल में, आप
ACTION_SEARCH
का रखरखाव करने वाली गतिविधि
इंटेंट जैसा है, जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है:
... <activity android:name="com.example.android.tvleanback.DetailsActivity" android:exported="true"> <!-- Receives the search request. --> <intent-filter> <action android:name="android.intent.action.SEARCH" /> <!-- No category needed, because the Intent will specify this class component --> </intent-filter> <!-- Points to searchable meta data. --> <meta-data android:name="android.app.searchable" android:resource="@xml/searchable" /> </activity> ... <!-- Provides search suggestions for keywords against video meta data. --> <provider android:name="com.example.android.tvleanback.VideoContentProvider" android:authorities="com.example.android.tvleanback" android:exported="true" /> ...
गतिविधि में, खोजे जा सकने वाले कॉन्फ़िगरेशन की जानकारी भी होनी चाहिए. साथ ही,
searchable.xml
फ़ाइल.
ग्लोबल सर्च डायलॉग बॉक्स का इस्तेमाल करने के लिए,
मेनिफ़ेस्ट को यह बताना चाहिए कि किस गतिविधि को खोज क्वेरी मिलनी चाहिए. मेनिफ़ेस्ट को भी ऐसा करना चाहिए
<provider>
के बारे में बताएं
एलिमेंट की तरह मौजूद है, जैसा कि searchable.xml
फ़ाइल में बताया गया है.
ज़्यादा जानकारी वाली स्क्रीन में आपके ऐप्लिकेशन का डीप लिंक
अगर आपने खोज कॉन्फ़िगरेशन को, खोज नतीजों को मैनेज करना' सेक्शन में बताए गए तरीके से सेट अप किया है, तो
सुझाव सेक्शन में शामिल किया गया है और SUGGEST_COLUMN_TEXT_1
को मैप किया है,
SUGGEST_COLUMN_PRODUCTION_YEAR
, और
SUGGEST_COLUMN_DURATION
फ़ील्ड, जैसा कि इसमें बताया गया है
कॉलम की पहचान करें सेक्शन,
आपके कॉन्टेंट के वॉच ऐक्शन का डीप लिंक, जानकारी वाली स्क्रीन पर दिखता है. यह स्क्रीन तब लॉन्च होती है, जब
जब कोई उपयोगकर्ता खोज के किसी नतीजे को चुनता है, तो:
जब उपयोगकर्ता आपके ऐप्लिकेशन के लिए कोई लिंक चुनता है, तो इसकी पहचान **चालू है** बटन से होती है
जानकारी वाली स्क्रीन पर, सिस्टम ACTION_VIEW
को मैनेज करने वाली गतिविधि लॉन्च करता है
के रूप में सेट करें
android:searchSuggestIntentAction
एट्रिब्यूट की वैल्यू "android.intent.action.VIEW"
में है
searchable.xml
फ़ाइल पर क्लिक करें.
अपनी गतिविधि लॉन्च करने के लिए, कस्टम इंटेंट भी सेट अप किया जा सकता है. इसे इसमें दिखाया गया है
Leanback सैंपल ऐप्लिकेशन
को अपनाएं. ध्यान दें कि सैंपल ऐप्लिकेशन अपना LeanbackDetailsFragment
लॉन्च करता है, ताकि
चुने गए मीडिया की जानकारी दिखाएं; अपने ऐप्लिकेशन में, मीडिया चलाने वाली गतिविधि लॉन्च करें
उपयोगकर्ता को एक या दो क्लिक सहेजने के लिए तुरंत प्रोत्साहित करें.
खोजने का तरीका
Android TV पर खोजने की सुविधा, होम स्क्रीन पर और आपके ऐप्लिकेशन में दिखती है. खोज के नतीजे अलग-अलग होती हैं.
होम स्क्रीन से खोजें
जब कोई उपयोगकर्ता होम स्क्रीन से खोज करता है, तो पहला नतीजा इकाई कार्ड में दिखता है. अगर कोई जिन ऐप्लिकेशन में कॉन्टेंट चलाया जा सकता है उनमें से हर एक का लिंक, कार्ड के सबसे नीचे दिखेगा:
प्रोग्राम के हिसाब से किसी ऐप्लिकेशन को इकाई कार्ड में नहीं डाला जा सकता. आपको प्लेबैक विकल्प होता है, तो किसी ऐप्लिकेशन के खोज परिणाम उस वीडियो के शीर्षक, वर्ष, और अवधि से मेल खाने चाहिए, खोजा गया कॉन्टेंट.
कार्ड के नीचे, खोज के ज़्यादा नतीजे उपलब्ध हो सकते हैं. उन्हें देखने के लिए, उपयोगकर्ता को रिमोट और नीचे स्क्रोल करें. हर ऐप्लिकेशन के नतीजे अलग-अलग लाइन में दिखते हैं. आप इसे नियंत्रित नहीं कर सकते पंक्तियों को क्रम में लगाना. काम करने वाले ऐप्लिकेशन देखने की कार्रवाइयां सबसे पहले दी जाती हैं.
अपने ऐप्लिकेशन से खोजें
उपयोगकर्ता, रिमोट से माइक्रोफ़ोन को चालू करके आपके ऐप्लिकेशन में से भी खोज शुरू कर सकता है या गेम पैड कंट्रोलर. खोज के नतीजे, ऐप्लिकेशन के कॉन्टेंट के सबसे ऊपर एक पंक्ति में दिखाए जाते हैं. आपका ऐप्लिकेशन अपनी वैश्विक खोज सेवा देने वाली कंपनी का इस्तेमाल करके खोज नतीजे जनरेट करता है.
ज़्यादा जानें
टीवी ऐप्लिकेशन खोजने के बारे में ज़्यादा जानने के लिए, पढ़ें अपने ऐप्लिकेशन में Android Search की सुविधाएं इंटिग्रेट करना और खोजने की सुविधा जोड़ें.
SearchFragment
की मदद से, इन-ऐप्लिकेशन खोज के अनुभव को अपनी पसंद के मुताबिक बनाने के तरीके के बारे में ज़्यादा जानने के लिए, इसे पढ़ें
टीवी ऐप्लिकेशन में खोजें.