ढांचे के कुछ हिस्सों हैं जो अभी तक मेरे लिए बिल्कुल स्पष्ट नहीं हैं। मैं एक इनपुट इवेंट (कर्नेल -> इवेंटहब -> इनपुट रीडर -> इनपुट डिस्पैचर -> ...) के प्रवाह के साथ अच्छी तरह से जाना जाता हूं।एंड्रॉइड की हैंडलिंग (फ्रेमवर्क)
स्थिति
(आवश्यकताएँ:। एंड्रॉयड फ्रेमवर्क बदले बिना इनपुट कुंजियां संभाल) मैं किसी उपकरण (कुंजीपटल/गेमपैड/नियंत्रक/...) लेकिन से आ रही महत्वपूर्ण घटनाओं हैंडल करना चाहते हैं वहाँ कुछ आवश्यकताएं हैं एक के लिए, मैं एंड्रॉइड ढांचे को बदलना नहीं चाहता हूं। इसका मतलब है, मैं WindowManagerPolicy
और उसके कार्यों जैसे interceptKeyBeforeDispatching
को विस्तारित नहीं करना चाहता हूं जहां घर की कुंजी को संभाला जा रहा है। इसके परिणामस्वरूप मुख्य परत को एप्लिकेशन परत में भेजा जा रहा है जो ठीक है। नकारात्मकता यह है कि मेरे पास यहां एक और मुश्किल आवश्यकता है। उदाहरण: जब मैं गुस्सा पक्षी खेल रहा हूं और मैं अपने कनेक्टेड इनपुट डिवाइस पर अपना गोटो एल्फा-बटन दबाता हूं, तो अल्फा-एप्लिकेशन को शुरू करना होगा। गुस्से में पक्षियों के पास कोई सुराग नहीं है जो बटन GoToAlpha है, इसे संभाल नहीं पाएगा और पहचान नहीं पाएगा और उदाहरण के लिए मेरे अल्फा-एप्लिकेशन को शुरू करने के लिए प्रसारित कोई इरादा नहीं होगा।
प्रश्न
वहाँ एक रास्ता के बाद यह भेजा जा रहा है मेरी (कस्टम) महत्वपूर्ण घटना को संभालने के लिए है, जानते हुए भी कि अग्रभूमि में आवेदन कुंजी को संभाल नहीं कर सकते हैं?
मेरे (विफल) समाधान
एक सेवा है जो महत्वपूर्ण घटनाओं संभाल लेंगे बनाएँ। यह संभव नहीं है क्योंकि एंग्री बर्ड जैसे एप्लिकेशन मेरी सेवा से बंधे नहीं होंगे और महत्वपूर्ण घटना मेरी सेवा के अंदर नहीं पकड़ी जाएगी। यदि मैं गलत हूं, तो कृपया अधिक जानकारी प्रदान करें :)।
बाहरी पुस्तकालय बनाएं जहां मैं अपने एप्लिकेशन की गतिविधियों को अपने स्वयं के गतिविधिबेस से प्राप्त करने की अनुमति देता हूं। सभी महत्वपूर्ण घटनाओं और वहां डिफ़ॉल्ट व्यवहार को संभाला जा सकता है। डाउनसाइड, मौजूदा एप्लिकेशन मेरी कस्टम कुंजी घटनाओं का समर्थन नहीं करेंगे क्योंकि वे लाइब्रेरी का उपयोग नहीं करते हैं।
ढांचे को विस्तारित करना मेरी आंखों में सबसे साफ समाधान होगा, लेकिन इसके परिणामस्वरूप मेरी आवश्यकता पूरी नहीं होगी।
कोई मदद या उपयोगी जानकारी की सराहना की जाएगी
अतिरिक्त
पहला सवाल एक ही रास्ता या अन्य .. पर हल किया जा सकता है, तो मैं चाहते मेरी अनुकूलित करने के लिए GoToAlpha-button के पीछे
Intent
। इसका मतलब है .. डिफ़ॉल्ट रूप से अल्फा-एप्लिकेशन शुरू हो जाएगा लेकिन उपयोगकर्ता के पास इसे अनुकूलित करने के बाद, बीटा-एप्लिकेशन अब से शुरू हो जाएगा .. कोई भी विचार?
धन्यवाद
यदि यह अन्य अनुप्रयोगों से महत्वपूर्ण घटनाओं को कैप्चर करना संभव है तो यह अजीब नहीं होगा? मुझे लगता है कि यह एक सुरक्षा जोखिम – Boy
सच होगा। एक बार जब महत्वपूर्ण घटना ढांचे को छोड़ देती है, तो यह केवल एक आवेदन पर जाती है और वहां संभाला जाता है। यदि नहीं, तो यह ढांचे में वापस आ गया है। इसका मतलब यह होगा कि कोई समाधान नहीं है जो मेरी आवश्यकताओं को पूरा करेगा? – DroidBender
मेरी राय में सुरक्षा समस्या के कारण शायद कोई रास्ता नहीं होगा: आपके ऐप पर कोई फोकस नहीं होने पर प्रमुख ईवेंट प्रबंधित करना। शायद एकमात्र तरीका होगा यदि आप एक एंड्रॉइड कीबोर्ड लागू करते हैं (मुझे उस पर कोई ज्ञान नहीं है)? यह महत्वपूर्ण घटनाओं को संभालने में सक्षम होना चाहिए (और जब आप किसी तृतीय पक्ष कीबोर्ड का चयन करते हैं तो उपयोगकर्ता इस सुरक्षा जोखिम पर भी ध्यान देते हैं) – Boy