दिलचस्प पोस्ट
क्या मैं स्विफ्ट को सी ++ के साथ मिला सकता हूँ? उद्देश्य – सी। एमएम फाइलों की तरह क्या मैं आईफोन एप्लिकेशन से पोस्ट या जीईटी अनुरोध कर सकता हूं? मनोहर संग्रह: गिनती और खाली पता लगाता है क्रॉलिंग के लिए स्क्रैपर के लिए यूआरएल कैसे देना है? वेबब्राइसर प्रिंट सेटिंग्स एक NumPy सरणी को स्थानांतरित करना लंबे प्रेस बनाम आंदोलन बनाम टच प्रेस का पता लगाएं? क्यों DispatcherServlet एक और अनुप्रयोग संदर्भ बनाता है? कॉर्डोवा ऐप iPhone X (सिम्युलेटर) पर सही ढंग से प्रदर्शित नहीं कर रहा है सीएसएस का इस्तेमाल करते हुए इनपुट बटन छवि को कैसे बदलना है? मैं जावा में जावास्क्रिप्ट से XHR प्रतिसादबीबी (बाइनरी डेटा के लिए) का उपयोग कैसे करूं? विंडोज स्टार्टअप पर जावा एप्लीकेशन चलाएं गुवा के वैकल्पिक वर्ग का क्या मतलब है? एचटीएमएल / सीएसएस में पिक्सेल बनाम पॉइंट्स एसक्यूएल सर्वर पर संग्रहीत proc अद्यतन करें

Android Marshmallow पर किसी विशिष्ट ऐप के लिए प्रोग्रामिंग की अनुमति स्क्रीन कैसे खोलें?

मेरे पास नए एंड्रॉइड मार्शमॉल रिलीज के बारे में एक सवाल है:

क्या यह किसी विशेष ऐप के लिए अनुमति स्क्रीन या कुछ इसी तरह के माध्यम से प्रदर्शित करने योग्य है?

एंड्रॉइड एम अनुमति स्क्रीन

निम्नलिखित कोड के साथ ऐप सेटिंग प्रदर्शित करना संभव है – क्या अनुमति स्क्रीन को सीधे खोलने के लिए एक एनालॉग समाधान है?

startActivity(new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS, Uri.fromParts("package", getPackageName(), null))); 

मैंने पहले से ही इस पर कुछ शोध किया है लेकिन मुझे उचित समाधान नहीं मिल पाया – मैं हर मदद की सराहना करता हूं!

वेब के समाधान से एकत्रित समाधान "Android Marshmallow पर किसी विशिष्ट ऐप के लिए प्रोग्रामिंग की अनुमति स्क्रीन कैसे खोलें?"

आधिकारिक मार्शमॉलो अनुमति वीडियो ( 4 9 43 के निशान पर ) के अनुसार, आपको इसके बजाय एप्लिकेशन सेटिंग पृष्ठ को खोलना होगा (वहां से यह अनुमतियां पृष्ठ पर एक क्लिक है)।

सेटिंग्स पृष्ठ खोलने के लिए, आप ऐसा करेंगे

 Intent intent = new Intent(); intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); Uri uri = Uri.fromParts("package", getPackageName(), null); intent.setData(uri); startActivity(intent); 

यह नहीं हो सकता। मैंने ऐसा करने की कोशिश की, भी। मैं पैकेज नाम और क्रियाकलाप का पता लगा सकता हूं जो आरंभ किया जाएगा। लेकिन अंत में आपको एक लापरवाही की अनुमति के कारण एक सुरक्षा अपवाद मिलेगा जिसे आप घोषित नहीं कर सकते।

अद्यतन करें:

अन्य उत्तर के बारे में मैं भी ऐप सेटिंग्स स्क्रीन को खोलने की सलाह देता हूं। मैं निम्नलिखित कोड के साथ ऐसा करता हूं:

  public static void startInstalledAppDetailsActivity(final Activity context) { if (context == null) { return; } final Intent i = new Intent(); i.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); i.addCategory(Intent.CATEGORY_DEFAULT); i.setData(Uri.parse("package:" + context.getPackageName())); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); i.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); i.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); context.startActivity(i); } 

जैसा कि मैं इसे अपने इतिहास के स्टैक में नहीं रखना चाहता हूं, मैं इरादा झंडे का उपयोग करके इसे हटा देता हूं।

इसके बजाय, आप एक पंक्ति के साथ विशेष ऐप की सामान्य सेटिंग्स खोल सकते हैं

  startActivity(new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS, Uri.parse("package:" + BuildConfig.APPLICATION_ID))); 
 Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); Uri uri = Uri.fromParts("package", getPackageName(), null); intent.setData(uri); startActivity(intent); 

विवरण

Settings.ACTION_APPLICATION_DETAILS_SETTINGS
एप्लिकेशन के लिए विवरण सेटिंग पृष्ठ खोलता है यहां से उपयोगकर्ता को वांछित अनुमति को मैन्युअल रूप से असाइन करना होगा।

Intent.FLAG_ACTIVITY_NEW_TASK
वैकल्पिक यदि सेट किया गया है तो सेटिंग स्क्रीन (गतिविधि) को नई गतिविधि के रूप में खोलता है अन्यथा, यह वर्तमान में चालू गतिविधि में खोला जाएगा।

Uri.fromParts("package", getPackageName(), null)
URI तैयार करता है या बनाता है, जबकि, getPackageName () – आपके आवेदन पैकेज का नाम देता है।

intent.setData(uri)
इसे सेट करने के लिए मत भूलना । अन्यथा, आप android.content.ActivityNotFoundException प्राप्त करेंगे। क्योंकि आपने Settings.ACTION_APPLICATION_DETAILS_SETTINGS रूप में अपना इरादा निर्धारित किया है। ACTION_APPLICATION_DETAILS_SETTINGS और एंड्रॉइड को कुछ नाम की खोज करने की उम्मीद है।

अगर हम FLYME OS (Meizu) के बारे में बात कर रहे हैं, तो केवल अनुमतियों के साथ स्वयं के सुरक्षा ऐप हैं

इसे खोलने के लिए निम्न उद्देश्य का उपयोग करें:

 public static void openFlymeSecurityApp(Activity context) { Intent intent = new Intent("com.meizu.safe.security.SHOW_APPSEC"); intent.addCategory(Intent.CATEGORY_DEFAULT); intent.putExtra("packageName", BuildConfig.APPLICATION_ID); try { context.startActivity(intent); } catch (Exception e) { e.printStackTrace(); } } 

कारण- BuildConfig आपके ऐप के BuildConfig है

यह व्यावहारिक रूप से अनुमति प्राप्त करने के लिए संभव नहीं है … लेकिन बीमार आपको कोड की उस पंक्ति को {} पकड़ {} में डाल देने का सुझाव देता है जो आपके ऐप को दुर्भाग्य से रोक देता है … और पकड़ बॉडी में एक डायलॉग बॉक्स बना जो नेविगेट करेगा उपयोगकर्ता को छोटे ट्यूटोरियल के लिए अन्य क्षुधा की अनुमति पर ड्रॉ करने के लिए सक्षम करें … फिर हाँ बटन पर क्लिक करें इस कोड को डाल दें …

  Intent callSettingIntent= new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION); startActivity(callSettingIntent); 

यह आशय सीधे अनुमतियों का प्रबंधन करने के लिए अन्य ऐप्स पर आकर्षित करने की सूची को खोलने के लिए है और फिर यहां से यह अन्य ऐप पर ड्रॉ करने के लिए एक क्लिक है अनुमतियां … मुझे पता है यह वह जवाब नहीं है जो आप ढूंढ रहे हैं … लेकिन मैं अपने ऐप्स में यह कर रहा हूं …

अनुरोध के साथ संभव है प्रस्तुति विधि

यद्यपि आप सीधे सेटिंग पृष्ठ नहीं देख सकते हैं, आप एक्सेस अनुमतियों को बदल सकते हैं।
एक अच्छा उदाहरण:
https://www.learn2crack.com/2015/10/android-marshmallow-permissions.html

इस तरह आप चेक और कॉल कर सकते हैं

 if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && checkSelfPermission(android.Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { requestPermissions(new String[]{android.Manifest.permission.READ_EXTERNAL_STORAGE}, 0); }