मेरे पास पृष्ठभूमि में एक अधिसूचना लिस्टनर सेवा चल रही है और जब मैं सेटिंग्स को निष्पादित करता हूं तो यह एक अपवाद फेंकता है। सिस्टम.canWrite (सेटिंग्स.java:3742)मार्शमलो: किसी सेवा से सेटिंग्स.System.canWrite (संदर्भ) निष्पादित नहीं कर सकता
12-03 18:25:33.490 2754-2771/? W/System.err﹕ java.lang.SecurityException: uid 10057 does not have android.permission.UPDATE_APP_OPS_STATS.
12-03 18:25:33.490 2754-2771/? W/System.err﹕ at android.os.Parcel.readException(Parcel.java:1599)
12-03 18:25:33.490 2754-2771/? W/System.err﹕ at android.os.Parcel.readException(Parcel.java:1552)
12-03 18:25:33.490 2754-2771/? W/System.err﹕ at com.android.internal.app.IAppOpsService$Stub$Proxy.checkOperation(IAppOpsService.java:327)
12-03 18:25:33.490 2754-2771/? W/System.err﹕ at android.app.AppOpsManager.checkOpNoThrow(AppOpsManager.java:1536)
12-03 18:25:33.490 2754-2771/? W/System.err﹕ at android.provider.Settings.isCallingPackageAllowedToPerformAppOpsProtectedOperation(Settings.java:8425)
12-03 18:25:33.490 2754-2771/? W/System.err﹕ at android.provider.Settings.isCallingPackageAllowedToWriteSettings(Settings.java:8320)
12-03 18:25:33.490 2754-2771/? W/System.err﹕ at android.provider.Settings$System.canWrite(Settings.java:3742)
ऐसा इसलिए है क्योंकि प्रदत्त संदर्भ एक सेवा है क्योंकि यह किसी गतिविधि से कॉल होने पर नहीं होता है।
एंड्रॉइड 6.0.1 पर पुन: उत्पादित - आपके द्वारा लिखे गए अंतिम कोड को – cuihtlauac
तय नहीं किया गया है, क्या यह एप्लिकेशन के यूआईडी को प्राप्त करना है और लिखने की सेटिंग्स की जांच करने के लिए इसका उपयोग करना चाहिए? आपके द्वारा लिखे गए – Olayinka
कोड> यह एसडीके में विधि का कार्यान्वयन है। हां, ऐसा करना है, लेकिन इस मामले में अधिसूचना लिस्टनर सेवा ऐप के अन्य हिस्सों के समान प्रक्रिया के तहत नहीं चल रही है, और इससे अप्रत्याशित समस्या होती है। – csenga