2011-08-12 17 views
6

के माध्यम से एक महत्वपूर्ण संयोजन (मेटा कुंजी और कीकोड) भेजें, मैं यह नहीं समझ सकता कि मेटा कुंजी (जैसे CTRL) और एंड्रॉइड के साथ एक कीकोड (उदाहरण के लिए रिटर्न) के संयोजन को कैसे भेजना है (मैं उपयोग कर रहा हूं एपीआई स्तर 11 = संस्करण 3.0)।एंड्रॉइड एपीआई

वर्ग KeyEventMETA_CTRL_ON तरह स्थिरांक उल्लेख के प्रलेखन और भी समर्थन करता है कीकोड स्थिरांक (जैसे KEYCODE_CTRL_LEFT) मेटा कुंजी के लिए।

मैं अपने इनपुट विधि संपादक (आईएमई) द्वारा उत्पन्न आउटपुट का परीक्षण करने के लिए Javascript Key Event Tester का उपयोग कर रहा हूं। बीटीडब्लू, मेरा लक्ष्य एक सॉफ्टवेयर कीबोर्ड विकसित करना है।

अगर मैं प्रलेखन सही समझते हैं, यह CTRL कुंजी केवल भेजने के लिए निम्न कोड निष्पादित करने के लिए पर्याप्त होगा:

this.sendDownUpKeyEvents(KeyEvent.KEYCODE_CTRL_RIGHT); 

लेकिन इस (जावास्क्रिप्ट कुंजी घटना परीक्षक के खिलाफ निष्पादित किया जाता है जब ऊपर देखें), कुछ नहीं हुआ।

तो मुझे मेटा कुंजी केवल और भेजने के लिए मेटा कुंजी भेजने के लिए एक अन्य कुंजी के साथ संयोजन में एक सुराग प्राप्त करने की आवश्यकता है। ,

private void _sendShiftEnter() { 
    this.sendDownKeyEvent(KeyEvent.KEYCODE_SHIFT_LEFT); 
    final long eventTime = SystemClock.uptimeMillis(); 
    this.getCurrentInputConnection().sendKeyEvent(
     new KeyEvent(
      eventTime, // The time (in uptimeMillis()) at which this key code originally went down. 
      eventTime, // The time (in uptimeMillis()) at which this event happened. 
      KeyEvent.ACTION_DOWN, // Action code: either ACTION_DOWN, ACTION_UP, or ACTION_MULTIPLE. 
      KeyEvent.KEYCODE_ENTER, // The key code. 
      0, // A repeat count for down events (> 0 if this is after the initial down) or event count for multiple events. 
      KeyEvent.META_SHIFT_ON, // Flags indicating which meta keys are currently pressed. 
      0, // The device ID that generated the key event. 
      0, // Raw device scan code of the event. 
      KeyEvent.FLAG_SOFT_KEYBOARD | KeyEvent.FLAG_KEEP_TOUCH_MODE, // The flags for this key event. 
      InputDevice.SOURCE_KEYBOARD // The input source such as SOURCE_KEYBOARD. 
     ) 
    ); 
} 

एक ही समस्या के रूप में ऊपर यहाँ होता भी: मैं भी (एक ठोस उदाहरण) शिफ्ट भेज + प्रवेश करने के लिए निम्नलिखित की कोशिश की केवल मान्यता प्राप्त कुंजी दर्ज है।

मैंने उदाहरण के लिए कई घंटों के लिए इंटरनेट की खोज की है, मेटा कुंजी और/या कुंजी संयोजनों के साथ KeyEvent कक्षा का उपयोग कैसे करें, लेकिन कोड का कम से कम एक उदाहरण नहीं मिला।

तो, निष्कर्ष में: क्या किसी को KeyEvent कक्षा के साथ अनुभव है और मुझे एंड्रॉइड एपीआई के माध्यम से चाबियों का एक सरल संयोजन (उदा। SHIFT + ENTER) भेजने का तरीका दिखा सकता है?

अग्रिम धन्यवाद!

उत्तर

0

मैं सिर्फ एक ही समय में दोनों मेटा कुंजी संशोधक रखा, और यह काम किया ...

उदाहरण KeyEvent.META_SHIFT_LEFT_ON | KeyEvent.META_SHIFT_ON के लिए।

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