2010-04-30 6 views
14

मेरे पास एक ऐसा एप्लिकेशन है जहां मैं उपयोगकर्ता को चेतावनी देना चाहता हूं कि वे डिफ़ॉल्ट एंड्रॉइड सॉफ्टकीबोर्ड का उपयोग नहीं कर रहे हैं। (यानी वे स्वाइप या कुछ और चीज का उपयोग कर रहे हैं)।एंड्रॉइड में वर्तमान आईएमई कैसे निर्धारित करें?

मैं कैसे जांच सकता हूं कि उन्होंने वर्तमान में किस इनपुट विधि का चयन किया है?

उत्तर

24

आप एक डिफ़ॉल्ट IME, उपयोग प्राप्त कर सकते हैं:

Settings.Secure.getString(getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD); 
+0

यह मेरे लिए काम नहीं करता है :( यह शून्य हो जाता है –

5

InputMethodManagergetEnabledInputMethodList() है। आपको अपने Activity में getSystemService() से InputMethodManager मिलते हैं।

+0

मुझे लगता है कि देखा था और है कि इनपुट विधि है कि उपयोगकर्ता के लिए उपलब्ध हैं की एक सूची देता है - लेकिन मैं यह पता लगाने की कैसे तय नहीं कर पा रहे जो एक वर्तमान में चुना गया है। – jkhouw1

+0

दुर्भाग्य से, केवल एक चीज जो मैं सोच सकता हूं, getEnabledInputMethodList द्वारा लौटाई गई सूची की लंबाई की जांच करें और यदि> 2, उन्हें चेतावनी दें कि अगर वे डिफ़ॉल्ट IME का उपयोग नहीं कर रहे हैं तो उन्हें _may_ में कोई समस्या है। किसी के पास कोई अन्य पॉइंटर्स/विचार हैं? – jkhouw1

+0

आप समस्या के बारे में एक नया SO प्रश्न खोलने पर विचार कर सकते हैं जो आपको लगता है कि आप स्वाइप का उपयोग कर उपयोगकर्ताओं के साथ अनुभव करेंगे, और इसे ठीक करने के तरीके को समझें। आखिरकार, मुझे संदेह है कि "डिफ़ॉल्ट आईएमई" की सीमा विस्तारित होगी क्योंकि एंड्रॉइड अन्य बाजारों में चला जाता है (उदाहरण के लिए, टीवी/सेट-टॉप बॉक्स)। इसलिए, मैं वास्तव में अनुशंसा करता हूं कि हम यह समझें कि इसे कैसे प्राप्त किया जाए ताकि आप परवाह न करें कि वे किस आईईएम का उपयोग कर रहे हैं। – CommonsWare

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