2012-07-27 18 views
5

पर बटनों की गणना करना मेरे पास एक एंड्रॉइड डिवाइस है जिसमें गेमपैड कनेक्ट किया जा सकता है (यह एक पूरी तरह से मानक एक्सबॉक्स 360 नियंत्रक है, लेकिन मुझे अन्य किस्मों का भी समर्थन करने की आवश्यकता है)। गेमपैड कुछ एनालॉग अक्षों और कुछ बटनों के साथ इनपुटडिवाइस के रूप में दिखाई दे रहा है।एंड्रॉइड: गेमपैड

मुझे यह जानने के लिए एंड्रॉइड से पूछने में सक्षम होना चाहिए कि गेमपैड किस बटन का समर्थन करता है। क्या किसी को भी यह करना आता है?

मुझे पता है कि सिस्टम में यह जानकारी है, क्योंकि अगर मैं एक कमांड लाइन ऐप लिखता हूं जो /dev/input/event... खोलता है और EVIOCGBIT ioctl का उपयोग करके बटनों से पूछताछ करता है, तो मुझे कर्नेल से समर्थित बटनों की एक अच्छी सूची मिलती है। लेकिन मैं इसे एंड्रॉइड एप्लिकेशन से नहीं कर सकता क्योंकि मुझे इनपुट उपकरणों तक सीधे पहुंचने की अनुमति नहीं है।

ऐसा लगता है कि इनपुटडिवाइस की KeyCharacterMap ऑब्जेक्ट और क्वेरी प्राप्त करना संभव होना चाहिए; लेकिन ऐसा लगता है कि एंड्रॉइड ने गेमपैड को डिफ़ॉल्ट QWERTY कुंजीपटल कीमैप संलग्न किया है, जो वास्तव में गेमपैड का समर्थन करता है। यह खुशी से मुझे बताएगा कि गेमपैड में एक क्यू कुंजी है, जो यह नहीं करता है, और इसमें कोई BUTTON_X कुंजी नहीं है, जो यह करता है, और जिसके लिए मुझे महत्वपूर्ण घटनाएं मिल रही हैं। तो वह मदद नहीं कर रहा है।

क्या ऐसा करने का कोई तरीका है?

+0

इस पर आपके विक्रेता से दस्तावेज़ होना चाहिए। आप किस डिवाइस का उपयोग कर रहे हैं? –

+0

कोई भी --- यह एक पोर्टेबल समाधान होना चाहिए। –

उत्तर

1

मुझे अभी तक कोई रास्ता नहीं पता है, लेकिन मुझे एक भयानक कामकाज मिला है।

यदि आप KeyCharacterMap.deviceHasKey(keycode) पर कॉल करते हैं, तो मैं किसी भी सिस्टम पर इनपुट डिवाइस निर्दिष्ट कुंजीकोड का समर्थन करता है, तो मैं एंड्रॉइड से पूछ सकता हूं। गेमपैड पर होने वाले सभी संभावित बटनों के माध्यम से पुनरावृत्ति करके (उपयोगी रूप से, उन्हें सभी KeyEvent.KEYCODE_BUTTON_something कहा जाता है), मैं यह समझ सकता हूं कि किसी भी जुड़े गेमपैड को कम से कम इन बटनों में से कुछ का समर्थन करना चाहिए।

यह एक बहुत अच्छा समाधान नहीं है --- यदि मेरे पास एक्सबॉक्स 360 कंट्रोलर और एक ही समय में एक Wiimote जुड़ा हुआ है, तो मुझे पता नहीं लगा सकता कि एक्सबॉक्स नियंत्रक के पास बटन 1 या 2 नहीं है, और Wiimote में एक्स या वाई नहीं है, उदाहरण के लिए। लेकिन कम से कम यह एक शुरुआत है।

यदि किसी के पास कोई बेहतर विचार है, तो कृपया कुछ सुझाव दें ...

+1

ऐसा लगता है कि अंत में उन्होंने एपीआई स्तर 1 9 (4.4) में इनपुटडिवाइस के साथ जोड़ा। एचएसकेस: http://developer.android.com/reference/android/view/InputDevice.html#hasKeys%28int...%29 –