MIUI 10 सेवा शुरू नहीं होने देती है - Xiaomi Redmi Note


12

मेरे ऐप में एक सेवा और एक गतिविधि है। सेवा से, गतिविधि को निम्नलिखित कोड के साथ कहा जाता है:

Intent intent = new Intent(getApplicationContext(), MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

यहां तक ​​कि झंडे के बिना, सामान्य रूप से गतिविधि विंडो को इसके सही लेआउट के साथ प्रदर्शित किया जाता है। हालाँकि, एंड्रॉइड 7 के साथ Xiaomi Redmi Note 4 पर, गतिविधि लेआउट प्रदर्शित नहीं किया गया है। मैं केवल logcat पर निम्न पंक्ति देखता हूं:

I / समयरेखा: समयरेखा: गतिविधि_लंच_ समय: 281438674 आशय: इरादा {flg = 0x30000000 cmp = com.test.app / .MainActivity}।

मेरा मानना ​​है कि यह एक एंड्रॉइड 7 (एपीआई 24) मुद्दा नहीं है क्योंकि एंड्रॉइड 7 के साथ एक और डिवाइस पर, सेवा सफलतापूर्वक गतिविधि शुरू कर सकती है। मुझे लगता है, MIUI गतिविधि को सेवा से लॉन्च करने से रोक रहा है।

मैंने यह दिखाने की कोशिश की कि गतिविधि को कैसे प्रकट में परिभाषित किया गया था। मैंने कई अलग-अलग झंडों के साथ भी कोशिश की। मेरे सभी परीक्षण विफल रहे। मैं गतिविधि शुरू करने में सफल नहीं हो सका। सबसे खराब मुद्दा यह है कि लॉग में कोई त्रुटि / अपवाद नहीं है।

कृपया इस पर कोई विचार?


MIUI 11 पर समान समस्या
एलेक्स्स

जवाबों:


16

सिस्टम सेटिंग्स ऐप से ऐप इन्फो स्क्रीन में> अन्य अनुमतियां> पृष्ठभूमि में चलने के दौरान पॉप-अप विंडो प्रदर्शित करें।

यह MIUI 11 में पेश किया गया लगता है।

संपादित करें: यहां कोड का एक टुकड़ा है जो मैं उपयोग करता हूं। मैं इसे एक अनुमति सूची में जोड़ता हूं RecyclerView

Class<?> c = Class.forName("android.os.SystemProperties");
Method get = c.getMethod("get", String.class);
String miui = (String) get.invoke(c, "ro.miui.ui.version.name");
if (miui != null && miui.contains("11")) {
            PermissionData mPopup = new PermissionData();
            mPopup.text = "Other permissions > Display pop-up while in background";
            mPopup.onClickListener = new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
                    Uri uri = Uri.fromParts("package", getPackageName(), null);
                    intent.setData(uri);
                    startActivity(intent);
                }
            };

            mPermissionData.add(mPopup);
}

अद्यतन: यह जाँचने के लिए कि क्या यह अनुमति दी गई है, आप पहले से चल रही सेवा का उपयोग कर सकते हैं और एक डमी पारदर्शी गतिविधि का शुभारंभ कर सकते हैं, और onCreateकॉल बैक में LocalBroadcastManagerया इसी तरह से कर सकते हैं और आपको पता चल जाएगा कि यह स्वीकृत है। यह एक बदसूरत समाधान है, लेकिन यह कुछ के लिए उपयोगी हो सकता है।


धन्यवाद। यह वास्तव में मुद्दा है। क्या ऐप के भीतर इस अनुमति का अनुरोध करने का कोई तरीका है? या इसे प्रोग्रामेटिक रूप से जोड़ें?
इल्केर अक्तुना

कोई भी ऐसा नहीं जिसे मैं जानता हूँ। मैं ऐप स्क्रीन को रीडायरेक्ट कर रहा हूं और उन्हें सक्षम करने के लिए कह रहा हूं कि अगर वे MIUI पर हैं ..
एलेक्स न्यूमैन

लेकिन ऐसा करने के लिए आपको ऐप शुरू करना होगा। आप इसे कैसे करते हो ? सूचनाओं के माध्यम से?
इल्कर अकुना

मैं यह तब करता हूं जब मैं एप्लिकेशन को पहली बार कॉन्फ़िगर किया जा रहा है जब एक अन्य आवश्यक अनुमति का अनुरोध करता हूं। मुख्य ऐप से, सेवा नहीं।
एलेक्स न्यूमैन

1
MIUI के लिए वास्तव में उपयोगी जानकारी, बस अनुमति देने से पृष्ठभूमि सेवा w / o से किसी भी कोड को बदलने की गतिविधि शुरू हो गई।
कलँगी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.