टीवी डिवाइसों को ऐप्लिकेशन इस्तेमाल करने के लिए एक सेकंडरी हार्डवेयर डिवाइस की ज़रूरत होती है—यह एक बुनियादी सुविधा है रिमोट कंट्रोलर या गेम कंट्रोलर. इसलिए, आपके ऐप्लिकेशन में डी-पैड (डी-पैड) इनपुट काम करना चाहिए. साथ ही, हो सकता है कि आपके ऐप्लिकेशन को ऑफ़लाइन होने वाले कंट्रोलर और एक से ज़्यादा इनपुट से इनपुट करना पड़े कंट्रोलर का टाइप.
इस गाइड में, टीवी डिवाइसों के कंट्रोलर को मैनेज करने की ज़रूरी शर्तों के बारे में बताया गया है.
डी-पैड के कम से कम कंट्रोल
किसी टीवी डिवाइस का डिफ़ॉल्ट कंट्रोलर, डी-पैड होता है. आम तौर पर, आपका ऐप्लिकेशन ऐसा रिमोट कंट्रोलर जिसमें सिर्फ़ ऊपर, नीचे, बाएं, दाएं, चुनें, वापस जाएं, और होम बटन होते हैं. अगर आपका ऐप्लिकेशन ऐसा गेम है जिसके लिए आम तौर पर, ज़्यादा कंट्रोल वाले गेम कंट्रोलर की ज़रूरत होती है, सिर्फ़ इन डी-पैड कंट्रोल से गेमप्ले को बढ़ावा देने की कोशिश करें. ऐसा न करने पर, उपयोगकर्ता को चेतावनी दें कि कंट्रोलर ज़रूरी है और डी-पैड कंट्रोलर का इस्तेमाल करके, गेम से बाहर निकलें.
टीवी डिवाइसों के लिए, डी-पैड कंट्रोलर से नेविगेट करने के बारे में ज़्यादा जानकारी के लिए, यहां देखें टीवी नेविगेशन.
कंट्रोलर के डिसकनेक्ट होने पर भी उसे हैंडल करना
टीवी के लिए नियंत्रक अक्सर ब्लूटूथ डिवाइस होते हैं, जो समय-समय पर पावर बचाने की कोशिश कर सकते हैं स्लीप मोड में जाकर और टीवी डिवाइस से डिसकनेक्ट हो जाता है. इसका मतलब है कि कोई ऐप्लिकेशन अगर इसे फिर से कनेक्ट किए गए इवेंट को मैनेज करने के लिए कॉन्फ़िगर नहीं किया गया हो, तो वह बीच में रुक जाए या रीस्टार्ट हो जाए. ये इवेंट इनमें से किसी भी स्थिति में हो सकता है:
- कुछ मिनट तक चलने वाला वीडियो, डी-पैड या गेम होना चाहिए कंट्रोलर स्लीप मोड में चला सकता है, टीवी डिवाइस से डिसकनेक्ट कर सकता है, और बाद में फिर से कनेक्ट कर सकता है.
- गेमप्ले के दौरान, कोई नया खिलाड़ी किसी ऐसे गेम कंट्रोलर का इस्तेमाल करके गेम में शामिल हो सकता है जो पहले से कनेक्ट नहीं है.
- गेमप्ले के दौरान, खिलाड़ी गेम छोड़कर चला सकता है और गेम कंट्रोलर को डिसकनेक्ट कर सकता है.
डिसकनेक्ट और फिर से कनेक्ट होने वाले इवेंट की वजह से होने वाली कोई भी टीवी ऐप्लिकेशन गतिविधि, ऐप्लिकेशन मेनिफ़ेस्ट में फिर से कनेक्ट करने पर होने वाले इवेंट को हैंडल करता है. नीचे दिया गया कोड सैंपल, कीबोर्ड या नेविगेशन डिवाइस सहित कॉन्फ़िगरेशन में बदलाव मैनेज करने के लिए कोई गतिविधि चालू करें कनेक्ट करना, डिसकनेक्ट करना या फिर से कनेक्ट करना:
<activity android:name="com.example.android.TvActivity" android:label="@string/app_name" android:configChanges="keyboard|keyboardHidden|navigation" android:theme="@style/Theme.Leanback"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LEANBACK_LAUNCHER" /> </intent-filter> ... </activity>
कॉन्फ़िगरेशन में किए गए इस बदलाव की मदद से, ऐप्लिकेशन फिर से कनेक्ट होने के बाद भी काम करता है ही नहीं, बल्कि Android फ़्रेमवर्क के ज़रिए रीस्टार्ट करने से मना किया जाता है. अच्छा उपयोगकर्ता अनुभव मिलता है.
डी-पैड इनपुट के वैरिएशन मैनेज करें
टीवी डिवाइस इस्तेमाल करने वाले लोगों के पास एक से ज़्यादा तरह के कंट्रोलर हो सकते हैं जिनका इस्तेमाल वे अपने टीवी के साथ करते हैं. इसके लिए उदाहरण के लिए, किसी उपयोगकर्ता के पास बेसिक डी-पैड कंट्रोलर और गेम कंट्रोलर, दोनों हो सकते हैं. कुंजी के कोड अगर डी-पैड का इस्तेमाल करते समय, गेम कंट्रोलर का इस्तेमाल किया जा रहा है, तो वह पासकोड से अलग हो सकता है बेसिक डी-पैड से भेजे गए कोड.
डी-पैड इनपुट के वैरिएशन मैनेज करें, ताकि उपयोगकर्ता कुछ न कर पाए अपने ऐप्लिकेशन को चलाने के लिए, कंट्रोलर को स्विच करना ज़रूरी है. हैंडलिंग के बारे में ज़्यादा जानकारी पाने के लिए इनपुट विविधता, देखें दिशा पैड इनपुट को प्रोसेस करें.
बटन से जुड़े इवेंट मैनेज करना
जब उपयोगकर्ता कंट्रोलर पर किसी बटन पर क्लिक करता है, तब आपके ऐप्लिकेशन को
KeyEvent
. मकसद
बटन के काम करने का तरीका कोई मीडिया इवेंट हो सकता है, जैसे कि चलाना, रोकना या बंद करना. इसके अलावा, वह कोई टीवी-टाइप इवेंट भी हो सकता है, जैसे
चुनें या नेविगेशन पर क्लिक करें. अच्छा उपयोगकर्ता अनुभव देने के लिए, बिडिंग के लिए एक जैसे तरीके का इस्तेमाल करें
कंट्रोलर के बटन के काम करने का तरीका भी बताता है.
टीवी यूज़र इंटरफ़ेस (यूआई) इवेंट
KeyEvent
को जनरेट करने वाले बटन के लिए, टीवी के यूज़र इंटरफ़ेस (यूआई) के काम करने का तरीका असाइन करें
नीचे टेबल में दिए गए टाइप देखें:
KeyEvent | व्यवहार |
---|---|
KEYCODE_BUTTON_B , KEYCODE_BACK | वापस जाएं |
KEYCODE_BUTTON_SELECT , KEYCODE_BUTTON_A , KEYCODE_ENTER ,
KEYCODE_DPAD_CENTER , KEYCODE_NUMPAD_ENTER | चुनें |
KEYCODE_DPAD_UP , KEYCODE_DPAD_DOWN , KEYCODE_DPAD_LEFT ,
KEYCODE_DPAD_RIGHT | नेविगेशन |
मीडिया इवेंट
जब कोई उपयोगकर्ता मीडिया देख रहा हो, तो इस बटन को दबाने के लिए व्यवहार तय करें
KeyEvent
टाइप नीचे दी गई टेबल में दिए गए हैं. अगर आपका ऐप्लिकेशन
MediaSession
MediaControllerAdapter
का इस्तेमाल करें
MediaControllerCompat.TransportControls
में से किसी एक को कॉल करने के लिए
तरीके टेबल में दिए गए हैं. ध्यान दें कि चुनने के बटन, चलाएं या रोकें के रूप में काम करते हैं
बटन पर क्लिक करें.
KeyEvent | TransportControls कॉल | व्यवहार |
---|---|---|
BUTTON_SELECT , BUTTON_A , ENTER ,
DPAD_CENTER , KEYCODE_NUMPAD_ENTER |
play() | चलाएं |
BUTTON_START , BUTTON_SELECT , BUTTON_A ,
ENTER , DPAD_CENTER , और KEYCODE_NUMPAD_ENTER |
pause() | रोकें |
BUTTON_R1 | skipToNext() | अगले पर जाएं |
BUTTON_L1 | skipToPrevious() | पिछले पर जाएं |
DPAD_RIGHT , BUTTON_R2 , AXIS_RTRIGGER ,
AXIS_THROTTLE | fastForward() | तेज़ी से आगे बढ़ाएं |
DPAD_LEFT , BUTTON_L2 , AXIS_LTRIGGER ,
AXIS_BRAKE | rewind() | पीछे ले जाएं |
लागू नहीं | stop() | रोकें |
ध्यान दें: MediaSession
का इस्तेमाल करते समय, हैंडलिंग में लगने वाले समय को न बदलें
मीडिया के लिए खास बटन, जैसे कि
KEYCODE_MEDIA_PLAY
या KEYCODE_MEDIA_PAUSE
.
सिस्टम, सही ट्रिगर को अपने-आप ट्रिगर कर देता है
MediaSession.Callback
तरीका.
'वापस जाएं' बटन सही तरीके से काम करे
'वापस जाएं' बटन को कभी भी टॉगल के तौर पर काम नहीं करना चाहिए. उदाहरण के लिए, किसी दस्तावेज़ को खोलने और बंद करने के लिए इसका इस्तेमाल मेन्यू. इसका इस्तेमाल सिर्फ़ प्लेयर की पिछली स्क्रीन पर ब्रेडक्रंब की स्टाइल में पीछे जाने के लिए करें चालू हो चुका है.
'वापस जाएं' बटन सिर्फ़ लीनियर और बैकवर्ड नेविगेशन करता है. इसलिए, इनका इस्तेमाल किया जा सकता है अलग-अलग बटन के ज़रिए ऐप्लिकेशन में मौजूद मेन्यू को खुला छोड़ देने और ऐप्लिकेशन पर वापस जाने के लिए भी कहा जाता है. 'वापस जाएं' बटन को लगातार दबाने पर, उपयोगकर्ता हमेशा Android TV की होम स्क्रीन पर पहुंच जाएंगे. उदाहरण के लिए: गेम प्ले > गेम रोकने की स्क्रीन > गेम की मुख्य स्क्रीन > Android TV की होम स्क्रीन पर या टीवी शो प्ले > टीवी ऐप्लिकेशन की मुख्य स्क्रीन > Android TV की होम स्क्रीन.
नेविगेशन के डिज़ाइन के बारे में ज़्यादा जानकारी के लिए, बैक और अप नेविगेशन डिज़ाइन करना. लागू करने के बारे में जानने के लिए, यहां जाएं: पीछे जाने के सही तरीके की जानकारी देना.
गेम के लिए कंट्रोलर हैंडल करना
डी-पैड कंट्रोल के साथ काम करता है
डी-पैड कंट्रोल से जुड़ी अपनी कंट्रोल स्कीम तय करें, क्योंकि यह कंट्रोल सेट डिफ़ॉल्ट रूप से Android TV डिवाइसों के लिए उपलब्ध है. खिलाड़ी के पास डी-पैड की सुविधा होनी चाहिए, जो कि गेम—न सिर्फ़ मुख्य गेमप्ले को कंट्रोल करना है, बल्कि मेन्यू और विज्ञापनों पर भी जाना है. इस वजह से, सुनिश्चित करें कि आपका Android TV गेम "जारी रखने के लिए, यहां टैप करें."
कंट्रोलर के साथ प्लेयर का इंटरैक्शन कैसा होना चाहिए, यह एक शानदार उपयोगकर्ता हासिल करने का तरीका हो सकता है अनुभव. इन सबसे सही तरीकों को अपनाने के बारे में सोचें:
- कंट्रोलर से जुड़ी ज़रूरी शर्तों के बारे में पहले ही जानकारी देना: Google Play पर दिया गया ब्यौरा इस्तेमाल करें कंट्रोलर के बारे में खिलाड़ी को जो भी उम्मीदें होती हैं उनके बारे में बताने के लिए. अगर कोई गेम अगर गेमपैड में जॉयस्टिक की जगह सिर्फ़ डी-पैड है, तो इससे साफ़ तौर पर कहें. जो खिलाड़ी ऐसा कंट्रोलर इस्तेमाल करने पर गेम का अनुभव खराब हो सकता है जिससे आपका गेम ख़राब हो. इसलिए, गेम की ख़राब रेटिंग है.
- बटन की एक जैसी मैपिंग इस्तेमाल करें: बटन को आसानी से मैप करना ज़रूरी है उपयोगकर्ता अनुभव को बेहतर बनाने में मदद करता है. उदाहरण के लिए, A बटन का इस्तेमाल करके स्वीकार किए गए कस्टम नियमों का पालन करें स्वीकार करें और B बटन का इस्तेमाल करके रद्द करें का इस्तेमाल करें. अपने विज्ञापनों को ज़रूरत के हिसाब से बनाने के लिए, के रूप में किया जा सकता है. बटन मैपिंग के बारे में ज़्यादा जानकारी के लिए, हैंडल करें कंट्रोलर के तौर पर की जाने वाली कार्रवाइयां.
- कंट्रोलर की क्षमताओं का पता लगाएं और उसके हिसाब से अडजस्ट करें: कंट्रोलर से क्वेरी करें कंट्रोलर और गेम के बीच के मैच को बेहतर बनाने की इसकी क्षमताओं के बारे में जानकारी. उदाहरण के लिए, आपका इरादा यह हो सकता है कि खिलाड़ी किसी चीज़ को हवा में लहराए, हालांकि, अगर प्लेयर के कंट्रोलर में एक्सलरोमीटर और जाइरोस्कोप हार्डवेयर नहीं है. इसलिए, हाथ हिलाने की सुविधा काम नहीं करती. कंट्रोलर से क्वेरी करें और अगर मोशन का पता नहीं लगाया जा रहा है, तो काम करता है, तो किसी दूसरी उपलब्ध कंट्रोल स्कीम पर जाएं. Reader Revenue Manager को सेट अप करने के बारे में कंट्रोलर डेटा की सुरक्षा से जुड़ी क्षमताओं के बारे में जानने के लिए, सहायता सभी Android वर्शन कंट्रोलर के लिए भी उपलब्ध है.
सही बटन का इस्तेमाल करना
सभी गेम कंट्रोलर, शुरू करने, खोजने या मेन्यू के बटन उपलब्ध नहीं कराते. पक्का करें कि आपका यूज़र इंटरफ़ेस (यूआई) निर्भर न करता हो के बारे में बात करते हैं.
एक से ज़्यादा कंट्रोलर मैनेज करना
जब कई खिलाड़ी अपने-अपने कंट्रोलर के साथ गेम खेल रहे हों, तो यह ज़रूरी है कि
हर प्लेयर-कंट्रोलर की जोड़ी को मैप करें. कंट्रोलर-नंबर लागू करने के तरीके की जानकारी के लिए
पहचान करने के लिए, देखें
getControllerNumber()
.
कंट्रोलर के डिसकनेक्ट होने पर भी उसे हैंडल करना
जब गेमप्ले के बीच में कोई कंट्रोलर डिसकनेक्ट हो जाए, तो गेम को रोकें और एक डायलॉग बॉक्स, जो डिसकनेक्ट किए गए प्लेयर को कंट्रोलर को फिर से कनेक्ट करने के लिए कहता है.
साथ ही, डायलॉग बॉक्स में समस्या हल करने के लिए सलाह दें. उदाहरण के लिए, "अपना ब्लूटूथ कनेक्शन जांचें" पर टैप करें. इनपुट डिवाइस को लागू करने के बारे में ज़्यादा जानकारी के लिए सहायता, हैंडल कंट्रोलर देखें कार्रवाइयां और ब्लूटूथ के बारे में खास जानकारी.
कंट्रोलर के लिए निर्देश दिखाएं
अगर आपका गेम विज़ुअल गेम कंट्रोल के निर्देश देता है, तो नियंत्रक इमेज के साथ ब्रैंडिंग नहीं होनी चाहिए. साथ ही, उसमें सिर्फ़ Android के साथ काम करने वाले बटन होने चाहिए.
Android के साथ काम करने वाले कंट्रोलर की सैंपल इमेज के लिए, इसे डाउनलोड करें Android TV गेमपैड टेंप्लेट (ZIP). इसमें काले रंग के बैकग्राउंड पर सफ़ेद कंट्रोलर और सफ़ेद रंग में काला कंट्रोलर लगा है बैकग्राउंड को पहली इमेज में दिखाया गया है. यह PNG फ़ाइल और Adobe® Illustrator® फ़ाइल के तौर पर दिखाया गया है.
![](https://developer.android.google.cn/static/images/games/game-controller-buttons_2x.png?authuser=5&hl=hi)
पहला डायग्राम. उदाहरण के तौर पर, Android TV गेमपैड टेंप्लेट.