दिलचस्प पोस्ट
चेकबॉक्स पर इवेंट बबुलिंग को कैसे रोकें क्लिक करें पायथन में HTML को पार्सिंग – एलएक्सएमएल या सुंदरसूप? किस प्रकार के उद्देश्य के लिए इनमें से बेहतर है? अज्ञात कॉलम में कहां आरजीबी हेक्स और हेक्स से आरजीबी तक डेटा का उपयोग करने वाले XmlReader या XPathDocument के निर्माण से पहले आप एक XML- आधारित डेटा स्रोत से अवैध हेक्साडेसिमल वर्ण कैसे निकाल सकते हैं? JavaScript में सरणी के माध्यम से लूप पीआईपी जीआईपी रेपो शाखा से स्थापित करें पीपीओ तैयार बयान क्रोम में सेलेनियम वेबड्रायवर अजगर बाइंडिंग चला रहा है एक यूनिकोड फ़ाइल नाम के साथ एक स्टडी :: एफएसटीएम (ऑफस्ट्र्रीम या इस्टस्ट्रीम) कैसे खोलें? मेमोरी लीक में WebView कैसे एक PHP से curl को एक चर में कुकीज़ प्राप्त करने के लिए पांडों में एक डेटाफ्रेम में पंक्तियों को फिर से कैसे पुनरावृत्त करें? सी # में enum से int मान प्राप्त करें एक निर्देशिका की पूरी सामग्री php का उपयोग करके प्रतिलिपि करें

Android Marshmallow में किसी सेवा से अनुमतियों का अनुरोध कैसे करें

एंड्रॉइड मार्शमॉलो में, एप स्थापित होने पर एक बार सभी के बजाय, आवश्यक होने पर रनटाइम पर अनुमतियों का अनुरोध किया जाना चाहिए। हालांकि, मैं केवल एक गतिविधि से अनुमतियों का अनुरोध कर सकता हूं, जो एक समस्या है क्योंकि मेरे ऐप में केवल सेवाएं शामिल हैं I (ऐसा क्यों है, आप पूछ सकते हैं? ऐप के पास एक एंड्रॉइड Wear घड़ी वाला चेहरा है, और सभी फोन घड़ी को भेजने के लिए नज़दीकी तस्वीरों को देखता है – कोई भी गतिविधि आवश्यक नहीं है, लेकिन इसके लिए स्थान अनुमति की आवश्यकता होती है।)

इसलिए, क्या किसी सेवा से अनुमतियों का अनुरोध करने का कोई तरीका है? या किसी भी तरह पूर्व के रूप में स्थापित समय पर अनुमति देने के लिए मजबूर?

वेब के समाधान से एकत्रित समाधान "Android Marshmallow में किसी सेवा से अनुमतियों का अनुरोध कैसे करें"

requestPermission() केवल एक Activity से कहा जा सकता है और एक Service नहीं (जांच के विपरीत checkPermission() जो केवल PackageManager आवश्यकता है) तो आपको उस के आसपास आने के लिए कुछ अतिरिक्त कार्य करने की आवश्यकता है; आपको अपने ऐप में एक Activity प्रदान करने की ज़रूरत है, उदाहरण के लिए, आपकी Service अनुमति के लिए इसकी जांच हो सकती है और अगर उन्हें अभी तक नहीं दिया गया है, तो यह एक सूचना बना सकता है और यह उपयोगकर्ता को एक संक्षिप्त संदेश के साथ सूचित क्यों कर सकता है एक अधिसूचना है और जब उन्हें अधिसूचना आदि पर क्लिक किया जाता है तो क्या होना चाहिए।

मैं सहमत हूं, सेवाओं के लिए यह बहुत परेशानी है, मुझे लगता है कि आपको इसके लिए एंड्रॉइड डेवलपर पूर्वावलोकन पृष्ठ पर एक समस्या की रिपोर्ट करनी चाहिए।

इस समय, मुझे लगता है कि सबसे अच्छा समाधान सेवा पर अनुमति के लिए जांच करना है, और यदि अनुमति अनुपलब्ध है तो सूचनाएं दिखाएं। इससे भी बेहतर, अनुमति के लिए अनुरोध करने के लिए डायलॉग एक्टिविटी बनाएं जब उपयोगकर्ता सूचना पर प्रेस करेंगे।

अनुमति पर नजर डालें हर जगह पुस्तकालय यह आपको किसी भी संदर्भ से अनुमति का अनुरोध करने की अनुमति देता है।

यह एक अधिसूचना तैयार करता है जिस पर यह अनुमति के लिए पूछे जाने वाले गतिविधि को खोलता है।

पुस्तकालय के जिथूब पृष्ठ से नमूना कोड: –

 @Override protected Boolean doInBackground(Void... params) { PermissionResponse response = PermissionEverywhere.getPermission(getApplicationContext(), new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQ_CODE, "Notification title", "This app needs a write permission", R.mipmap.ic_launcher) .call(); //waits.. boolean isGranted = response.isGranted(); if(isGranted){ //changed from isGrante to isGranted // Do stuff } } 

एक बहुत ही सरल लाइब्रेरी है जो इस तरह से करने की अनुमति देता है। आप किसी भी स्थान से (यहां तक ​​कि एक सेवा से) अनुमतियों की जांच कर सकते हैं, इस आधार पर कि ऐप अग्रभूमि या पृष्ठभूमि में है, यह सामान्य संवाद दिखाता है या अनुमति के लिए पूछे जाने वाले एक अधिसूचना को उत्पन्न करता है। कोड वास्तव में समझना आसान है और यह भी उपयोग करने में वास्तव में आसान है।

इसे एक कोशिश दें: एंड्रॉइड अनुमतियां

 @SuppressLint("NewApi") public void checkPerm() { locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); if ( checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED ) { return; } locationManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, new LocationListener() {....} } 

आप उपयोगकर्ता के एक रिसीवर को उत्तर देने के लिए ResultReceiver का उपयोग कर सकते हैं, फिर उसे सूचना के PendingIntent जरिए गतिविधि को कॉलबैक के रूप में पास कर PendingIntent । संदर्भ