मैं एक इनपुट विधि सेवा को कार्यान्वित करने की कोशिश कर रहा हूं जो रिमोट क्लाइंट द्वारा भेजे गए इरादों को प्राप्त करता है, और उन लोगों के जवाब में उचित कुंजीवेन्ट भेजता है।डायलॉग, या स्पिनर मेनू में इनपुट विधि सेवा के माध्यम से KeyEvents कैसे भेजें?
मैं input method service
में इस विधि
private void keyDownUp(int keyEventCode)
{
getCurrentInputConnection().sendKeyEvent(
new KeyEvent(KeyEvent.ACTION_DOWN, keyEventCode));
getCurrentInputConnection().sendKeyEvent(
new KeyEvent(KeyEvent.ACTION_UP, keyEventCode));
}
उपयोग कर रहा हूँ KeyEvents
Simple Sofykeyboard Sample
में के रूप में भेजने के लिए, और यह घर में काम करता है, Activities.
में .. लेकिन ऐसा नहीं होता काम करता है जब एक संवाद या एक स्पिनर का मेनू अग्रभूमि में है।
घटनाओं parent activity behind the Dialog
को भेजा जाता है।
वहाँ किसी भी तरह से किसी इनपुट विधि से हार्डवेयर कुंजियों का उपयोग की तरह कुंजी भेजने के लिए और डिवाइस को नियंत्रित करने है? मैं क्या कर रहा हूँ पर
बेहतर स्पष्टीकरण:
मैं एक तरह से एक इनपुट मेथड कि दूरदराज से डिवाइस को नियंत्रित करने की अनुमति देता है writng कर रहा हूँ।
मैं एक ग्राहक में लिखने (मेरे डेस्कटॉप पीसी पर एक जावा आवेदन) (उदाहरण के "उत्तर प्रदेश" के लिए) एक आदेश, sendBroadcast()
साथ डिवाइस पर एक सर्वर इनपुट विधि में जानकारी के साथ आशय, और एक रिसीवर को भेजता है keycode
के साथ कुंजीडाउनअप को कॉल करें और यह आम तौर पर काम करता है, लेकिन जब मैं एक ऐप पर जाता हूं जो एक संवाद दिखाता है, तो keyDownUp
विधि dialog
पर कुंजी ईवेंट नहीं भेजती है, उदाहरण के लिए हाँ या नहीं चुनने के लिए बटन, लेकिन यह के पीछे activty
को नियंत्रित करता रहता है।
Here मैं अपने एक ही समस्या के साथ किसी पाया है ... लेकिन कोई जवाब नहीं ...
मैंने अपनी समस्या को स्पष्ट करने की कोशिश कर अपना प्रश्न संपादित किया है कि मेरी समस्या क्या है। आपके उदाहरण में जब मैं एसएमएस ऐप में संवाद खोलता हूं, अगर मैं DPAD_DOWN कुंजी के लिए नीचे आदेश भेजता हूं, तो यह स्क्रॉल करने के लिए अग्रभूमि में संवाद नहीं करता है, लेकिन यह पीछे की गतिविधि को भेजा जाता है, जो दिखाता है संदेश सूची, उस संदेश के नीचे का चयन करना जिसे मैंने लंबे समय तक दबाया था, संवाद को बंद करना असंभव बना रहा था। मैंने केडडाउन और ऑनअप पर कॉल करने का प्रयास किया है, लेकिन वे काम नहीं करते हैं और जहां कुंजीडाउनअप काम करता है। – shutdown11
getCurrentInputConnection() हमेशा गतिविधि के साथ एक कनेक्शन लौटाता है जो संवाद दिखाता है, और संवाद कभी नहीं। इसके बजाय हार्ड कुंजी का उपयोग करके, जब आप ध्यान केंद्रित करते हैं तो आप संवाद को स्क्रॉल कर सकते हैं, इसलिए मैं एक हार्ड कुंजी का अनुकरण करने के बारे में सोच रहा था। – shutdown11
हार्ड कुंजी निश्चित रूप से इंस्ट्रुमेंटेशन क्लास के साथ अनुकरण किया जा सकता है, लेकिन रूट डिवाइस की आवश्यकता है। –