मैं एक ऐसा एप्लीकेशन विकसित कर रहा हूं जो उपयोगकर्ता को ब्लूटूथ के माध्यम से जुड़े बाहरी बारकोड स्कैनर का उपयोग करके बारकोड स्कैन करने देता है। बारकोड स्कैनर कीबोर्ड के रूप में कार्य करता है, यानी एंड्रॉइड सोचता है कि स्कैन किए गए बारकोड को कीबोर्ड पर टाइप किया गया है।ब्लूटूथ कीबोर्ड से इनपुट की अनुमति दें भले ही स्क्रीन लॉक
ऐप ठीक काम कर रहा है, जब तक स्क्रीन चालू रहती है।
स्क्रीन बंद होने के बाद, मैं स्कैनिंग बारकोड जारी रख सकता हूं, लेकिन स्कैन किए गए टेक्स्ट अब ऐप तक नहीं पहुंचते हैं, बल्कि लॉक स्क्रीन पर कार्रवाइयों को आमंत्रित करते हैं।
क्या बाहरी कीबोर्ड से इनपुट को ऐप में इनपुट करने की अनुमति देने का कोई तरीका है हालांकि स्क्रीन बंद कर दी गई है?
वैकल्पिक रूप से मुझे चालू रहने के लिए स्क्रीन को मजबूर करना होगा, लेकिन यह बुलेट प्रूफ नहीं है, क्योंकि उपयोगकर्ता गलती से स्क्रीन को लॉक कर सकता है।
अद्यतन
मैं का उपयोग करके सही दिशा में एक छोटा कदम बना दिया है:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
यह (गैर-सुरक्षित) लॉक स्क्रीन के बिना एप्लिकेशन दिखाई देंगे, जब नए इनपुट कीबोर्ड से संसाधित किया जाता है। दुर्भाग्यवश, पहला पत्र गुम है। यह स्क्रीन को जागने वाले पहले अक्षर और बाकी इनपुट वास्तव में EditText
तक पहुंचने के कारण होता है।
अपने स्कैनर गतिविधि 'GetWindow() addFlags (WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) के लिए इस कोड को जोड़ने;' और प्रकट में इस अनुमति जोड़ने '<का उपयोग करता है-अनुमति एंड्रॉयड: नाम =" android.permission.WAKE_LOCK " /> '। आप कर चुके हैं। –
संस्करण के आधार पर, आप लॉक स्क्रीन पर जोड़ने के लिए एक विजेट विकसित कर सकते हैं। यह कीबोड (बीटी स्कैनर) को सुन सकता है और डेटा को आपकी गतिविधि में भेज सकता है। – AxelH