मैं संपर्क प्रबंधन के लिए सरल विजेट बना रहा हूं, जो उपयोगकर्ता को वांछित संपर्क में एसएमएस भेजने और भेजने की अनुमति देता है।लॉकस्क्रीन से नई गतिविधि कैसे शुरू करें?
यह "सामान्य विजेट" के रूप में ठीक काम करता है, लेकिन जब मैं इसे एंड्रॉइड 4.2 पर लॉकस्क्रीन विजेट के रूप में जोड़ता हूं, तो एसएमएस ऐप या डायल ऐप शुरू नहीं होता है। वास्तव में वे स्टार हैं, लेकिन "पीछे" लॉकस्क्रीन हैं, इसलिए उपयोगकर्ता को अभी भी एसएमएस डायल करने/भेजने में सक्षम होने के लिए मैन्युअल रूप से अनलॉक करना होगा।
मैंने कुछ समाधान के लिए वेब की खोज की, लेकिन कुछ भी आसान नहीं हुआ। मुझे FLAG_DISABLE_KEYGUARD या FLAG_SHOW_WHEN_LOCKED के बारे में पता है, लेकिन चूंकि एसएमएस/डायल ऐप्स "मेरा" नहीं हैं इसलिए मुझे नहीं पता कि वे उचित ध्वज सेट करते हैं या नहीं। एक कामकाज के रूप में मैंने अपनी गतिविधि बनाने की कोशिश की जो उन झंडे को सेट करता है और फिर बस वांछित (डायल या एसएमएस) शुरू करता है, लेकिन इससे मदद नहीं मिलती है।
स्क्रीन अनलॉक करने का एक तरीका है, लेकिन इसमें KeyguardManager और KeyguardLock (जो ठीक काम करता है) का उपयोग करना शामिल है, लेकिन KeyguardLock.newKeyguardLock() का उपयोग करने के परिणामस्वरूप मैं फोन के साथ अंततः लॉक चालू करने में सक्षम नहीं हूं, निश्चित रूप से क्योंकि मैं इस लॉक को रिलीज़ नहीं करता (यह लॉक को फिर से दिखने का कारण बनता है, जो मैं नहीं चाहता)।
वास्तव में, इस विजेट को लॉक स्क्रीन पर डिफ़ॉल्ट एसएमएस विजेट या मेल विजेट के साथ समान रूप से काम करना चाहिए?
तो, मेरा सवाल है, इसे कैसे प्राप्त करें और लॉकस्क्रीन से नई गतिविधि शुरू करें?
हाय फ़िलिप। मैं भी इसी बारे में सोच रहा था। मैं एंड्रॉइड के लिए काफी नया हूँ। तो क्या आप यहां थोड़ी मदद कर सकते हैं? आप विजेट लेआउट में बटन पर क्लिक श्रोताओं को कैसे सेट करते हैं या देखते हैं? क्या आपके ऐपविड्जप्रोवाइडर क्लास की ऑनसीस विधि पर इसका कुछ संबंध है? –
हाय, ठीक है, यह स्पष्ट करने के लिए इतना स्पष्ट और काफी मुश्किल नहीं है (इसे कार्यान्वित करने का उल्लेख नहीं है :))। मुझे यह समझने में थोड़ी देर लग गई। संक्षेप में, आपको इसे प्राप्त करने के लिए 'लंबित इंटेंन्ट' और 'रिमोट व्यू' कक्षाओं का उपयोग करने की आवश्यकता है। [दस्तावेज़ीकरण] (http://developer.android.com/guide/topics/appwidgets/index.html#implementing_collections) के अंदर देखने का सबसे अच्छा तरीका है। संक्षेप में, जब आपके पास 'रिमोट व्यू' के माध्यम से कॉन्फ़िगर किया गया है, तो 'RemoteView # setOnClickFillInIntent' विधि' के माध्यम से इसमें 'लंबितइन्टेंट' ऑब्जेक्ट को इंजेक्ट करें। –