2012-02-08 11 views
6

क्या आईसीएस/एचसी में यह पता लगाने का कोई तरीका है कि उपयोगकर्ता को हार्डवेयर मेनू कुंजी तक पहुंच है या नहीं?एंड्रॉइड 4.0 पता लगाता है कि उपयोगकर्ता के पास हार्डवेयर बैक/होम कुंजियां हैं

विन्यास मैं बदलने का तरीका ActionBar से भर जाता है आशा करती हूं कि, उदा पर निर्भर करता है:

उपयोगकर्ता एक भौतिक घर बटन है, तो ActionBar में दिखाया गया है बटन की संख्या को कम।

धन्यवाद, लारेंस

+0

आपके पास एक्शन बार में क्यों हैं? वे पहले से ही सिस्टम बार में हैं। –

+0

एक उदाहरण खोज कुंजी होगी, यदि उपयोगकर्ता की खोज कुंजी है तो मैं इसे एक्शनबार में नहीं दिखाना चाहता हूं। – Ljdawson

+0

आप शायद [फोन के मॉडल] के आधार पर चीजों को बदलने से बेहतर हैं (http://developer.android.com/reference/android/os/Build.html#MODEL) – adneal

उत्तर

0

दोनों आईसीएस और मधुकोश (दुर्भाग्य से) कार्रवाई बार और सिस्टम बार के संयोजन के लिए मेनू कुंजी की जगह, हमें यह बताने के लिए कॉन्फ़िगर करने के जब हम एक मेनू बटन दिखाना चाहते बिना।

बस यह न मानें कि यह अस्तित्व में है, या लक्ष्य एसडीके 10 होने के लिए सेट करें जो हमेशा मेनू कुंजी दिखाएगा (जो 3 बिंदुओं की तरह दिखता है)।

वैसे भी, यह दिलचस्प होगा अगर आपको यह जांचने का कोई तरीका मिल जाए कि मेनू बटन मौजूद है या नहीं।

2

मुझे कुछ समय लिया, लेकिन मैं hasPermanentMenuKey() जो नए फोन के लिए एचटीसी तरह काम नहीं करता पर भरोसा तुलना में एक अधिक विश्वसनीय तरीका मिल गया है एक जो कोई मेनू कुंजी है, लेकिन कर वापस घर है & कुंजी को नरम नेविगेशन बार की आवश्यकता नहीं है (या दिखाएं)। इस बारे में जानने के लिए निम्न कोड का प्रयास करें जो बैक बटन के लिए भी जांच करता है:

boolean hasMenuKey = ViewConfiguration.get(context).hasPermanentMenuKey(); 
boolean hasBackKey = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_BACK); 

if(!hasMenuKey && !hasBackKey) { 
    // Do whatever you need to do, this device has a navigation bar 
} 
+0

नेक्सस 6 बिना हार्डवेयर कुंजी के, अभी भी रिटर्न KeyCharacterMap.deviceHasKey (KeyEvent.KEYCODE_BACK) पर सत्य; – Vlad

संबंधित मुद्दे