2011-07-11 12 views
6

मैं यह जानना चाहता हूं कि मौजूदा उपयोगकर्ताओं के फोन में हार्डवेयर कीबोर्ड है या केवल ऑन-स्क्रीन कीबोर्ड है या नहीं। क्या यह एसडीके के साथ संभव है?क्या एंड्रॉइड में यह बताने का कोई तरीका है कि उपयोगकर्ता डिवाइस के पास वास्तविक कीबोर्ड है या नहीं?

उत्तर

16

हां, आप कर सकते हैं।

लायें

Configuration config = getResources().getConfiguration(); 

का उपयोग कर Configuration वस्तु ... और फिर keyboard फ़ील्ड को देखें।

यदि वे keyboard का मान KEYBOARD_NOKEYS नहीं है, तो उपयोगकर्ता के पास एक हार्डवेयर कीबोर्ड है।

ध्यान दें कि @Carl नीचे दी गई टिप्पणी में कहा गया है कि उपयोगकर्ता आपके ऐप के चलते किसी भी समय यूएसबी कीबोर्ड संलग्न कर सकता है, जिससे keyboard का मूल्य बदल सकता है।

+0

धन्यवाद बस मैं जो देख रहा था। – Bryan

+1

हालांकि यह सच है कि उपयोगकर्ता के पास हार्डवेयर कीबोर्ड होता है यदि config.keyboard KEYBOARD_NOKEYS नहीं है, तो यह ध्यान दिया जाना चाहिए कि कोई डिवाइस KEYBOARD_NOKEYS की रिपोर्ट कर सकता है, लेकिन उसके बाद एक बाहरी यूएसबी कीबोर्ड संलग्न है और KEYBOARD_QWERTY की रिपोर्ट करें, जबकि आपका ऐप दौड रहा है। कम से कम, मेरे पास एक GTablet चल रहा है CyanogenMod 7.0.3-Harmony/Android 2.3.3 जो ठीक है। और यह भी संभव है कि कुंजीपटल का मूल्य, जब KEYBOARD_NOKEYS नहीं है, तो KEYBOARD_QWERTY की बजाय KEYBOARD_12KEY है, इसलिए यदि कीबोर्ड का प्रकार आपके लिए महत्वपूर्ण है, तो आप इन विशेष रूप से परीक्षण करना चाहेंगे। – Carl

+0

@ करल - पॉइंट री को शामिल करने के लिए अपडेट किया गया: कीबोर्ड को ऐप के मध्य-निष्पादन से जोड़ा जा रहा है। धन्यवाद। – razlebe