2010-07-31 10 views
9

से सक्रिय इनपुट विधि का निर्धारण करें आप कैसे निर्धारित करते हैं कि वर्तमान में कौन सी इनपुट विधि सक्रिय है - उपयोगकर्ता एक टेक्स्ट एडिट फ़ील्ड पर लंबे समय तक दबाकर इनपुट विधि (सॉफ्ट कीबोर्ड) बदल सकता है - कोड से, कोई कैसे निर्धारित करता है इनपुट विधि जिसे उपयोगकर्ता नेएंड्रॉइड: कोड

+0

यह बताना मुश्किल है:

String id = Settings.Secure.getString( getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD ); 

आप वर्तमान कुंजीपटल बारे में अधिक जानकारी प्राप्त करना चाहते हैं, तो आप उपयोग कर सकते हैं: आप उपयोग में इनपुट मेथड की स्ट्रिंग आईडी प्राप्त करने के लिए इस लाइन का उपयोग कर सकते तुम यहाँ क्या पूछ रहे हो क्या आप समस्या को हाइलाइट करने के लिए अधिक संदर्भ और कुछ कोड प्रदान कर सकते हैं? –

+0

क्षमा करें - मैंने एंड्रॉइड के लिए टैग जोड़ा - एंड्रॉइड में, उपयोगकर्ता एक संपादन क्षेत्र पर एक लंबी प्रेस द्वारा इनपुट विधियों को बदल सकता है और मैं क्या जानना चाहता हूं कि यह निर्धारित करने के लिए एंड्रॉइड सिस्टम से कितना संभव है कि कई संभावित इनपुट विधियों में से कौन सा है उपयोगकर्ता ने चुना है। –

+0

आपका ऐप यह क्यों जानना चाहता है? – adamp

उत्तर

21

मुझे एहसास हुआ है कि आपको शायद इसकी आवश्यकता नहीं है, लेकिन कोई इसका उत्तर चाह सकता है।

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
    List<InputMethodInfo> mInputMethodProperties = imm.getEnabledInputMethodList(); 

    final int N = mInputMethodProperties.size(); 

    for (int i = 0; i < N; i++) { 

     InputMethodInfo imi = mInputMethodProperties.get(i); 

     if (imi.getId().equals(Settings.Secure.getString(getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD))) { 

      //imi contains the information about the keyboard you are using 
      break; 
     } 
    } 
संबंधित मुद्दे