2011-09-01 9 views
9

है या नहीं, मुझे यह पता लगाने में मदद की ज़रूरत है कि कोई डिवाइस खोज हार्डवेयर बटन से लैस है या नहीं। क्या यह संभव है?जांचें कि एंड्रॉइड डिवाइस में हार्डवेयर बटन

संपादित करें: मैं यह पता लगाने के बारे में बात कर रहा हूं कि डिवाइस में हार्डवेयर हार्डवेयर है या नहीं। आसान सवाल। प्रत्येक एंड्रॉइड डिवाइस में हार्डवेयर बटन का एक सेट होता है; मेनू, होम बटन, बैक बटन, और खोज बटन। लेकिन कुछ डिवाइस केवल उनमें से कुछ से सुसज्जित हैं, सभी नहीं।

संपादित करें 2: कारण मैं पूछता हूं क्योंकि मैं अपने यूआई में एक सॉफ़्टवेयर बटन दिखाना चाहता हूं यदि डिवाइस हार्डवेयर बटन से लैस नहीं है। मैं अपनी गतिविधि में searchable इंटरफ़ेस का उपयोग कर रहा हूं। मैं EditText/TextField दृष्टिकोण का पालन नहीं कर रहा हूं।

+0

यदि मैं गलत नहीं जा रहा हूं, तो आपने डिवाइस खोज हार्डवेयर बटन या कुछ ग्राफिकल व्यू बटन के बारे में बताया है? – user370305

+0

मैंने सोचा कि यह एंड्रॉइड उपकरणों के लिए एक आवश्यकता थी। – rds

+0

सभी डिवाइस हार्डवेयर बटन से लैस नहीं हैं। नए गैलेक्सी टैब 10.1 में उन बटनों में से कोई भी नहीं है जो मैंने पहले उल्लेख किया था। हार्डवेयर मेनू को जांचने के लिए – ScratchMyTail

उत्तर

-2

बेहतर तरीका है कि आप usign दो तरीके से कर सकते हैं

  1. खोज बटन डाल दिया और editText क्लिक पर onSearchRequested();

  2. दूसरा रास्ता करने के लिए कॉल कर दिया android:imeOptions="actionSearch" ताकि आप कुंजी

    के लिए
    जांच करने की जरूरत है
    searchBox.setOnEditorActionListener(new OnEditorActionListener() 
    { 
        public boolean onEditorAction(TextView textView, int id,KeyEvent event) 
        { 
        if (id == EditorInfo.IME_ACTION_SEARCH) 
         { 
          //do what ever you want 
         } 
        return true; 
        } 
    }); 
    

उम्मीद है कि यह आपकी मदद करेगा।

+1

के लिए मदद नहीं कर सकता मैं खोज नहीं कर रहा हूं कि सर्चफील्ड को कैसे सक्रिय किया जाए। मैं पूछ रहा हूं कि कैसे गीलेर को पता चल सकता है कि एक उपकरण हार्डवेयर खोज से लैस है या नहीं। विचार सरल है। यदि डिवाइस में हार्डवेयर खोज बटन नहीं है तो मुझे एक सॉफ्टवेयर बटन दिखाना चाहिए। यदि इसमें हार्डवेयर बटन है तो मैं सॉफ़्टवेयर बटन नहीं दिखाऊंगा। मेरी योजना है। – ScratchMyTail

+1

मैंने जवाब को वोट दिया है क्योंकि यह प्रश्न और समाधान की उचित पुष्टि नहीं करता है –

1

मुझे नहीं लगता कि आपको यह पता लगाने की आवश्यकता है कि वास्तव में एक खोज हार्डवेयर बटन है या नहीं। ढांचा आपको यहां मदद करेगा (हालांकि, मुझे यकीन है कि आइसक्रीम सैंडविच जारी होने के बाद यह प्रक्रिया सरल हो जाएगी)

वर्तमान में, केवल वे डिवाइस जिनके पास हार्डवेयर खोज नहीं है, हनीकॉम्ब टैबलेट हैं। तो, android:targetSdkVersion="11" (या अधिक) का उपयोग करते हुए, अपने Fragment या Activity करने के लिए implements OnQueryTextListener जोड़ने, और फिर जोड़ने कुछ द्वारा की तरह:

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    inflater.inflate(R.menu.notebooks_menu, menu); 
    final SearchView sv = new SearchView(getActivity()); 
    sv.setOnQueryTextListener(this); 
    menu.findItem(R.id.search_notebooks).setActionView(sv); 
} 

आप अनिवार्य रूप से समस्या का समाधान होगा। अब, इसे प्री-हनीकॉम डिवाइस पर काम करने के लिए, आपको compatibility library का उपयोग करने की आवश्यकता हो सकती है, या अपने कोड में प्रतिबिंब या कुछ अन्य गार्ड का उपयोग करना पड़ सकता है।

संपादित

Samsung Galaxy S II एक समर्पित हार्डवेयर खोज बटन नहीं है, लेकिन अगर आप कुछ सेकंड के लिए डाउन मेनू बटन पकड़ , यह एक हार्डवेयर खोज बटन के रूप में कार्य शुरू हो जाएगा।

+0

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

+1

कृपया एसजीएस 2 के मेन्यू बटन को खोज बनने के बारे में मेरा संपादन देखें। मैं मानता हूं कि यह * महान * नहीं है (लेकिन आप वास्तव में उन्हें नवाचार करने की कोशिश करने के लिए दोष नहीं दे सकते हैं) जब हार्डवेयर निर्माता इस तरह की चीजें खींचते हैं, क्योंकि यह कम से कम उपयोगकर्ता और डेवलपर अपेक्षाओं को तोड़ देता है। –

+0

धन्यवाद जॉन। बीटीडब्ल्यू मुझे लगता है कि समर्थन पुस्तकालय SearchView के साथ नहीं आता है। तो हमें पुराने एसडीके में डिफ़ॉल्ट खोज संवाद का उपयोग करने की आवश्यकता है। यहां [दस्तावेज़ीकरण] है (http://developer.android.com/training/search/backward-compat.html)। –

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