এমআইইউআই 10 পরিষেবাটি ক্রিয়াকলাপ শুরু করতে দেয় না - শাওমি রেডমি নোট


9

আমার অ্যাপ্লিকেশনটিতে একটি পরিষেবা এবং একটি ক্রিয়াকলাপ রয়েছে। পরিষেবা থেকে, ক্রিয়াকলাপটি নিম্নলিখিত কোড সহ কল ​​করা হয়:

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

এমনকি পতাকা ছাড়াই, সাধারণত ক্রিয়াকলাপের উইন্ডোটি তার সঠিক বিন্যাসের সাথে প্রদর্শিত হয়। তবে, অ্যান্ড্রয়েড 7 সহ শাওমি রেডমি নোট 4 এ, ক্রিয়াকলাপের বিন্যাস প্রদর্শিত হবে না। আমি কেবল লগক্যাটে নিম্নলিখিত লাইনটি দেখতে পাচ্ছি:

আই / টাইমলাইন: টাইমলাইন: ক্রিয়াকলাপ_লঞ্চ_আবেদনের সময়: 281438674 অভিপ্রায়: উদ্দেশ্য {flg = 0x30000000 cmp = com.test.app / .ManActivity}

আমি বিশ্বাস করি এটি কোনও অ্যান্ড্রয়েড 7 (এপিআই 24) সমস্যা নয় কারণ অ্যান্ড্রয়েড 7 সহ অন্য একটি ডিভাইসে, পরিষেবাটি সফলভাবে ক্রিয়াকলাপ শুরু করতে পারে। আমার ধারণা, এমআইইউআই পরিষেবাটি থেকে ক্রিয়াকলাপটি আরম্ভ করতে বাধা দিচ্ছে।

আমি কীভাবে ম্যানিফেস্টে ক্রিয়াকলাপটি সংজ্ঞায়িত করা হয়েছিল তা পরিবর্তনের চেষ্টা করেছি। আমি বেশ কয়েকটি বিভিন্ন পতাকা দিয়ে চেষ্টাও করেছি। আমার সমস্ত পরীক্ষা ব্যর্থ হয়েছে। ক্রিয়াকলাপ শুরু করতে আমি সফল হতে পারিনি। সবচেয়ে খারাপ সমস্যা লগগুলিতে কোনও ত্রুটি / ব্যতিক্রম নেই।

এই সম্পর্কে কোন ধারণা?


উত্তর:


12

সিস্টেম সেটিংস অ্যাপ্লিকেশন থেকে অ্যাপ তথ্য স্ক্রিনে> অন্যান্য অনুমতি> পট-আপ চলমান অবস্থায় পপ-আপ উইন্ডো প্রদর্শন করুন।

এটি এমআইইউআই 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অনুরূপ বা একই সাথে ফিরে আসতে পারেন এবং আপনি জানবেন যে এটি অনুমোদিত হয়েছে। এটি একটি কুরুচিপূর্ণ সমাধান, তবে এটি কারওর জন্য কার্যকর হতে পারে।


ধন্যবাদ. এটাই আসলে সমস্যা। অ্যাপ্লিকেশন মধ্যে এই অনুমতি জন্য কোন উপায় আছে? বা প্রোগ্রাম হিসাবে এটি যুক্ত?
ইল্কার আক্তুনা

যে সম্পর্কে আমি অবগত নই। আমি অ্যাপ্লিকেশন তথ্য স্ক্রিনে পুনর্নির্দেশ করছি এবং তারা যদি এমআইইউআইতে থাকে তবে এটি সক্ষম করতে তাদের বলছি ..
অ্যালেক্স নিউম্যান

তবে এটি করতে আপনাকে অ্যাপ্লিকেশনটি শুরু করতে হবে। তুমি এটা কিভাবে কর ? বিজ্ঞপ্তি মাধ্যমে?
ইল্কার আক্তুনা

অ্যাপটি প্রথম কনফিগার করা হচ্ছে যখন আমি অন্য প্রয়োজনীয় অনুমতির জন্য অনুরোধ করি তখন আমি এটি করি the মূল অ্যাপ্লিকেশন থেকে, তাই কোনও পরিষেবা নয়।
অ্যালেক্স নিউম্যান

1
এমআইইউআইয়ের জন্য সত্যিকারের দরকারী তথ্য, যেমন কোনও কোড পরিবর্তন করে পটভূমি পরিষেবা থেকে ক্রিয়াকলাপ শুরু করা w / o।
পানাহে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.