मेरे पास एक सूची दृश्य है जिसमें इंस्टॉल किए गए एप्लिकेशन की सूची है और प्रत्येक एप्लिकेशन के लिए, मुझे यह जानना होगा कि नोटिफिकेशन सक्षम हैं या नहीं। वर्तमान में मैं नीचे दिए गए कोड का उपयोग कर रहा जानना चाहते हैं कि सूचनाएं सक्षम हैं:कैसे पता चले कि सूचनाएं एंड्रॉइड में किसी एप्लिकेशन के लिए सक्षम हैं या नहीं?
appOpsClass = Class.forName(AppOpsManager.class.getName());
Method checkOpNoThrowMethod = appOpsClass.getMethod(CHECK_OP_NO_THROW, Integer.TYPE, Integer.TYPE, String.class);
Field opPostNotificationValue = appOpsClass.getDeclaredField(OP_POST_NOTIFICATION);
int value = (int)opPostNotificationValue.get(Integer.class);
return ((int)checkOpNoThrowMethod.invoke(mAppOps,value, appUID, appPackage) == AppOpsManager.MODE_ALLOWED);
मैं निम्न अपवाद है: java.lang.SecurityException::
की वजह से uid 10062 नहीं है android.permission.UPDATE_APP_OPS_STATS। डब्ल्यू/System.err: android.os.Parcel.readException (Parcel.java:1683) डब्ल्यू/System.err: android.os.Parcel.readException (Parcel.java:1636) डब्ल्यू/System.err पर : com.android.internal.app.IAppOpsService $ स्टब $ Proxy.checkOperation (IAppOpsService.java:343)
पर मैं
<uses-permission android:name="android.permission.UPDATE_APP_OPS_STATS"/>
फिर भी मैं एक ही त्रुटि मिल रही शामिल किया है। क्या उपयोग कर एपिस मैं() मान चाहे वह अवरुद्ध है या नहीं
ऐप बनाने के लिए आप किस एपीआई संस्करण का उपयोग कर रहे हैं और आप किस एंड्रॉइड संस्करण पर अपने ऐप का परीक्षण कर रहे हैं? मैं यह पूछ रहा हूं क्योंकि एंड्रॉइड 6 और उसके बाद के कुछ संवेदनशील अनुमतियों के लिए, आपको रनटाइम पर उपयोगकर्ताओं से अनुमति प्राप्त करने की आवश्यकता है। https://developer.android.com/training/permissions/requesting.html –
देखें कि 'NotificationManager.getNotificationPolicy()' यह आपके लिए करता है या नहीं। [लिंक] (https://developer.android.com/reference/android/app/NotificationManager.html#getNotificationPolicy()) – sonictt1