বিঃদ্রঃ:
- adb ইতিমধ্যে পিসিতে সেটআপ করা উচিত।
- অ্যান্ড্রয়েডের জন্য সংস্করণ ৪.৪.x এর চেয়ে বেশি আগে, রুট অ্যাক্সেসের প্রয়োজন হতে পারে।
- কিছু কমান্ড অ্যান্ড্রয়েডে সংস্করণ 5.1 এর আগে কাজ করবে না।
- আপনি যদি কমান্ড-লাইন এবং / অথবা কমান্ড-লাইন আপনার সমস্যা সমাধান করতে ব্যর্থ হন তবে " অ্যাপসের জন্য অ্যাপস " শিরোনামে যান ।
সম্পাদনা করুন: পূর্ববর্তী সমাধানটিতে ধাওয়াটি কেটে ফেলুন এবং কেবলমাত্র এই সম্পাদিত বিভাগটি অনুসরণ করুন।
অ্যাডবি সেটআপ করুন এবং এই আদেশটি রান করুন:
adb shell "dumpsys window windows | toybox grep -i system_alert_window"
আপনি স্ক্রিনে সমস্ত সক্রিয় ওভারলেগুলির আউটপুট পাবেন । ডিইউ স্ক্রিন রেকর্ডার, টাস্কার এবং এজেড স্ক্রিন রেকর্ডার সহ একটি আউটপুট উদাহরণ স্ক্রিনে সক্রিয় ওভারলেগুলি দেখায়:
bash-4.3 # অ্যাডবি শেল "উইন্ডো উইন্ডো ডাম্পসিস | টয়বক্স গ্রেপ -i সিস্টেম_লেটার_ উইন্ডো"
mOwnerUid = 10087 mShowToOwnerOnly = সত্য প্যাকেজ = নেট.ডলিংস.অ্যান্ড্রয়েড.টাসকার অ্যাপপ = SYSTEM_ALERT_WINDOW
mOwnerUid = 10604 mShowToOwnerOnly = সত্য প্যাকেজ = com.hecorat.screenrecorder.free অ্যাপপ = SYSTEM_ALERT_WINDOW
mOwnerUid = 10604 mShowToOwnerOnly = সত্য প্যাকেজ = com.hecorat.screenrecorder.free অ্যাপপ = SYSTEM_ALERT_WINDOW
mOwnerUid = 10649 mShowToOwnerOnly = সত্য প্যাকেজ = com.duapps.recorder অ্যাপআপ = SYSTEM_ALERT_WINDOW
mOwnerUid = 10649 mShowToOwnerOnly = সত্য প্যাকেজ = com.duapps.recorder অ্যাপআপ = SYSTEM_ALERT_WINDOW
mOwnerUid = 10604 mShowToOwnerOnly = সত্য প্যাকেজ = com.hecorat.screenrecorder.free অ্যাপপ = SYSTEM_ALERT_WINDOW
mOwnerUid = 10604 mShowToOwnerOnly = সত্য প্যাকেজ = com.hecorat.screenrecorder.free অ্যাপপ = SYSTEM_ALERT_WINDOW
mOwnerUid = 10638 mShowToOwnerOnly = সত্য প্যাকেজ = ninja.sesame.app.edge অ্যাপপ = SYSTEM_ALERT_WINDOW
প্যাকেজ = এর পরে হাইলাইট করা পাঠ্য = এবং অ্যাপোপের আগে অ্যাপ্লিকেশনগুলির প্যাকেজের নাম (গুলি) বর্তমানে স্ক্রিনে ওভারলে আঁকছে । আপনার ক্ষেত্রে, প্যাকেজের নাম (গুলি) সহ আউটপুট পৃথক হবে।
প্যাকেজের নাম (গুলি) লিখে রাখুন (এখন থেকে পিকেজি হিসাবে) এবং এই আদেশটি কার্যকর করুন:
adb shell am force-stop PKG
আপনার উল্লেখ করা প্যাকেজটির নাম দিয়ে পিকেজি প্রতিস্থাপন করুন । আপনার একাধিক প্যাকেজের নাম থাকলে, একবারে একটি প্যাকেজের নাম দিয়ে কমান্ডটি পুনরাবৃত্তি করুন।
কমান্ডটি অ্যাপ্লিকেশনটিকে জোর করে থামিয়ে দেয় এবং এর ফলে ওভারলে ফেলে দেয়। এই কাজ করা উচিত. আপনি এই আদেশটি ব্যবহার করে অ্যাপ্লিকেশনগুলি থেকে বিকল্পভাবে "অন্যান্য অ্যাপ্লিকেশনগুলি আঁকুন" (সংক্ষেপে স্ক্রিন ওভারলে) এর অনুমতিটি ছিনিয়ে নিতে পারেন:
adb shell appops set PKG SYSTEM_ALERT_WINDOW ignore
আবার, পিকেজিকে প্রয়োজনীয় হিসাবে প্যাকেজের নাম দিয়ে প্রতিস্থাপন করুন। তদতিরিক্ত, আপনাকে পিকেজির জন্য ফোর্স-স্টপ কমান্ডটি পুনরাবৃত্তি করতে হতে পারে। যদি আপনি পরিবর্তনগুলি ফিরিয়ে নেওয়ার সিদ্ধান্ত নেন, পূর্ববর্তী কমান্ডের সাথে অনুমতি সহ উপেক্ষা করুন প্রতিস্থাপন করুন ।
আপনি GUI থেকে অনুমতিগুলি পরিচালনা করতে বিকল্পভাবে অ্যাপ অপ্স ব্যবহার করতে পারেন ।
কোন প্যাকেজের নামটি অ্যাপ্লিকেশন সম্পর্কিত তথ্যের মতো কোনও ওপেন সোর্স অ্যাপ্লিকেশন চেষ্টা করতে পারে তা কোন অ্যাপ্লিকেশনের সাথে সম্পর্কিত । প্যাকেজের নাম অনুসারে অনুসন্ধান করুন এবং আপনি অ্যাপটির নাম পাবেন।
সম্পাদনা শেষ হয়েছে
আপনার এখন আর পড়ার দরকার নেই । আমি পূর্ববর্তী সমাধানটি (যেমন বিভাগটিকে অনুসরণ করে) অক্ষত রেখে চলেছি কারণ 21 জন যারা এটির ভোট দিয়েছিল তারা সেই সহায়ক খুঁজে পেয়েছিল এবং আমি আর গণ্ডগোল করতে চাই না।
একটি সহজ উপায় হ'ল "অন্যান্য অ্যাপ্লিকেশনগুলির উপরে আঁকুন" এর অনুমতি থাকা সমস্ত অ্যাপ্লিকেশনগুলি খুঁজে বের করা এবং তারপরে স্ক্রিনে বর্তমানে সক্রিয় থাকা অ্যাপ্লিকেশনগুলি থেকে সেগুলি খুঁজে বের করা। এরপরে, সক্রিয় ওভারলেটির জন্য দায়ী অ্যাপটিকে পিন-পয়েন্ট না করা পর্যন্ত সেই সাধারণ অ্যাপগুলিকে জোর করে থামাতে জড়িত হন।
ওভারলেয়ের অনুমতি থাকা অ্যাপ্লিকেশনগুলি গণনা করুন
ওভারলে তৈরি করার জন্য কোনও অ্যাপ্লিকেশানের দ্বারা প্রয়োজনীয় অনুমতিটি হ'ল android.permission.SYSTEM_ALERT_WINDOW
(অন্যান্য অ্যাপ্লিকেশনগুলিতে আঁকুন)।
আমাদের অনুমোদিত সমস্ত অ্যাপ্লিকেশন অ্যাপ্লিকেশন খুঁজে বের করতে হবে। এটির জন্য কোনও পদ্ধতি সন্ধান করা আপনার পক্ষে। আমার উত্তর এখানে আপনাকে সাহায্য করতে পারে।
নোট করুন যে আমাদের অ্যাপ্লিকেশনগুলির প্যাকেজের নামগুলি দরকার এবং না তাদের লেবেল।
সক্রিয় উইন্ডোজ থেকে চেরি-পিক করুন
কমান্ড কার্যকর করুন
adb shell dumpsys window windows
এটি আপনাকে স্ক্রিনে কোনও কিছুর কারণ প্রদর্শিত হতে পারে তার বিবরণ দেবে, যার ফলে কোনও অ্যাপ্লিকেশনটির উপাদানটির নামও রয়েছে।
আপনি কীভাবে নামটি কাটাবেন তা আপনার উপর নির্ভর করে। আপনি এই আদেশটি চেষ্টা করতে পারেন
adb shell 'dumpsys window windows | grep "Window #"'
আপনি যদি ত্রুটিটি পান: 'গ্রেপ' কোনও অভ্যন্তরীণ বা বাহ্যিক কমান্ড হিসাবে স্বীকৃত নয় , উইন্ডোজে এই বিকল্প কমান্ডটি ব্যবহার করে দেখুন:
adb shell "dumpsys window windows | grep 'Window #'"
ডেমো আউটপুট
উইন্ডো # 4 উইন্ডো {42065d50 u0 com.android.phone/com.ediak. iPhone.UssdAlertActivity}:
উইন্ডো # 5 উইন্ডো {42197468 u0 ginlemon.flowerpro / ginlemon.flower.HomeScreen}:
উইন্ডো # 6 উইন্ডো {420fdb58 u0 com.android.systemui.I छवि ওয়েলপেপার}:
উইন্ডো # 7 উইন্ডো {421e3b88 u0 কম.অ্যান্ড্রয়েড কন্ট্যাক্টস / কম.অ্যান্ড্রয়েড কন্ট্যাকটিস.অ্যাকটিভিটিস D ডায়ালট্যাক্টসঅ্যাক্টিভিটি}:
উপরের আউটপুটে, সফল u0
এবং পূর্ববর্তী কিছু /
হ'ল একটি অ্যাপ্লিকেশনটির প্যাকেজের নাম। কোনও অ্যাপ্লিকেশনটিতে স্ক্রিনে কিছু প্রদর্শন করতে একাধিক উপাদান থাকতে পারে।
আপনাকে সেই প্যাকেজ নামের একটি তালিকা তৈরি করতে হবে। আপনার যদি ব্যাসিবক্স ইনস্টল থাকে তবে আপনি এটি করতে পারেন
adb shell 'dumpsys window windows | grep "Window #" | sed -e "s/.*u0 //g" -e "s/\/.*//g" -e "s/}://g"'
যাইহোক, এখন আপনার দুটি তালিকা থাকবে:
- প্রথম তালিকায় অনুমতি থাকা সমস্ত অ্যাপ্লিকেশন রয়েছে
android.permission.SYSTEM_ALERT_WINDOW
।
- দ্বিতীয় তালিকায় সমস্ত অ্যাপস সক্রিয়ভাবে স্ক্রিনে কিছু প্রদর্শন করছে।
এই দুটি তালিকা এবং একক আউট অ্যাপ্লিকেশনগুলির তুলনা করুন যা উভয় তালিকায় সাধারণ are এই তৃতীয় তালিকায় অ্যাপ্লিকেশনগুলির সমন্বয়ে ওভারলে আঁকার অনুমতি রয়েছে এবং বর্তমানে স্ক্রিনে একটি সক্রিয় ওভারলে আঁকছে।
খুন করার সময়
তৃতীয় তালিকা থেকে প্রতিটি অ্যাপ্লিকেশনকে একে একে মেরে ফেলুন এবং ওভারলেয়ের অবস্থাটি লক্ষ্য করুন। আপনি am force-stop PACKAGE_NAME --user 0
বা আপনার পছন্দ অনুসারে অন্য যে কোনও পদ্ধতি ব্যবহার করতে পারেন । PACKAGE_NAME
অ্যাপ্লিকেশনটির প্যাকেজের নাম।
সম্পাদনা : কোনও অ্যাপ্লিকেশন মারার প্রয়োজন নেই। আপনি অ্যাপ্লিকেশনটিকে অন্যান্য অ্যাপ্লিকেশনগুলিতে আঁকার অনুমতি অস্বীকার করার বিষয়টি বিবেচনা করতে পারেন। এই আদেশটি ব্যবহার করুন:
adb shell 'appops set PACKAGE SYSTEM_ALERT_WINDOW deny' # replace PACKAGE with package name of the app
পরিবর্তনগুলি প্রত্যাহার করতে, উল্লিখিত কমান্ডের সাথে অনুমতি অস্বীকার প্রতিস্থাপন করুন এবং এটি সম্পাদন করুন।
আপনি যদি অ্যান্ড্রয়েড মার্শমালো চালাচ্ছেন তবে অ্যান্ড্রু টি-র এই উত্তরটি ব্যবহার করা যেতে পারে।
দ্রষ্টব্য: পূর্ববর্তী কমান্ডটি Android 5.1.1 এবং 6.0.1 (সিএম বিল্ডস) এ সফলভাবে পরীক্ষা করা হয়েছে successfully এটিও সম্ভব যে কমান্ডটি Android 5.0.x এ কাজ করে তবে আমি গ্যারান্টি দিতে পারি না । ললিপপের আগে প্রকাশিত অ্যান্ড্রয়েড সংস্করণে সেই আদেশটি কার্যকর করা ব্যর্থতার কারণ হতে পারে।
যেহেতু প্রায়শই ওভারলেটি অনুধাবনযোগ্য, ততক্ষণে এটি যে অ্যাপ্লিকেশনটির ফলে এটি মারা গেছে সেই মুহুর্তটি তাৎক্ষণিকভাবে অদৃশ্য হয়ে যাবে, সুতরাং, আপনি জানতে পারবেন কোন অ্যাপ্লিকেশন সেই ওভারলেটিকে সৃষ্টি করছে।
অ্যাপ্লিকেশনগুলির জন্য অ্যাপ্লিকেশন
মূলত ইজির পরামর্শ অনুসারে, আপনি এমন অ্যাপ্লিকেশনটি ব্যবহার করতে পারেন যা ইনস্টল করা অ্যাপ্লিকেশনগুলিকে অনুমোদিত অনুমতি তালিকার কার্যকারিতা রয়েছে এবং "অন্যান্য অ্যাপ্লিকেশনগুলিতে আঁকুন" এর অনুমতি থাকা অ্যাপ্লিকেশনগুলিকে এককভাবে খুঁজে বের করতে পারেন। আপনি নিজেই এই জাতীয় অ্যাপ্লিকেশনটি অনুসন্ধান করতে পারেন বা ইজির দ্বারা পরিচালিত অনুমতি পরীক্ষার তালিকাটি তার ওয়েবসাইটে ব্যবহার করতে পারেন ।
কিছু প্রক্রিয়া জোর করে থামানো / হত্যা করতে আপনার একটি প্রক্রিয়া / অ্যাপ ম্যানেজারেরও প্রয়োজন। আমি ওএস মনিটরের প্রস্তাব দিচ্ছি তবে আপনি যে কোনও উপযুক্ত অ্যাপ্লিকেশন ব্যবহার করতে পারেন at সিস্টেম তথ্যের অধীনে সম্পর্কিত অ্যাপ্লিকেশনগুলি দেখুন ।
শুধুমাত্র বিক্ষোভের উদ্দেশ্যে
আমি "অন্যান্য অ্যাপ্লিকেশনগুলিতে আঁকতে" অনুমতি নিয়ে অ্যাপ্লিকেশনগুলি তালিকাভুক্ত করার জন্য অ্যাডভান্সড পারমিশন ম্যানেজারকে চেষ্টা করেছি । এরপরে, অ্যাপ্লিকেশনগুলি ফোরগ্রাউন্ড এবং পটভূমিতে চলছে তা দেখতে আমি ওএস মনিটরে স্যুইচ করেছি। আমি উভয় অ্যাপ্লিকেশন থেকে আউটপুট মেলে এবং পৃথকভাবে জোর করে থামানো উভয় অ্যাপ্লিকেশন। আপনি ওএস মনিটরের অভ্যন্তর থেকে কোনও প্রক্রিয়াটিকে মেরে ফেলতে পারেন, সুতরাং অ্যাপ্লিকেশন সেটিংসে স্যুইচ করার দরকার নেই।
(প্রসারিত করতে ছবিতে ক্লিক করুন)