যদি আপনার অ্যাপটি তার ব্যবহারের ক্ষেত্রে অন্যান্য অ্যাপের সাথে ইন্টারঅ্যাকশনের উপর নির্ভর করে, তাহলে Android 11 (API লেভেল 30) এবং তার উচ্চতর সংস্করণে প্যাকেজ দৃশ্যমানতার পরিবর্তন আপনার অ্যাপকে কীভাবে প্রভাবিত করে তা পরীক্ষা করা কার্যকর।
এই নির্দেশিকাটি আচরণগত পরিবর্তনগুলি কীভাবে পরীক্ষা করতে হয় সে সম্পর্কে কিছু পরামর্শও দেয় এবং আপনার অ্যাপটি কীভাবে প্রভাবিত হতে পারে তা আরও সুক্ষ্ম স্তরে নির্ধারণ করার জন্য লগ বার্তাগুলি কনফিগার করতে সহায়তা করে।
আচরণগত পরিবর্তন পরীক্ষা করুন
এই আচরণগত পরিবর্তন আপনার অ্যাপকে প্রভাবিত করে কিনা তা পরীক্ষা করতে, নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:
- অ্যান্ড্রয়েড স্টুডিও ৩.৬.১ বা তার উচ্চতর সংস্করণ ইনস্টল করুন।
- অ্যান্ড্রয়েড স্টুডিও সমর্থিত গ্র্যাডেলের সর্বশেষ সংস্করণটি ইনস্টল করুন।
- আপনার অ্যাপের
targetSdkVersion30বা তার বেশিতে সেট করুন। - আপনার অ্যাপের ম্যানিফেস্ট ফাইলে
<queries>উপাদানটি অন্তর্ভুক্ত করবেন না। -
getInstalledApplications()অথবাgetInstalledPackages()কল করুন। উভয় পদ্ধতিই সফল হলে একটি ফিল্টার করা তালিকা প্রদান করে। - আপনার অ্যাপের কোন বৈশিষ্ট্যগুলি কাজ করছে না তা দেখুন।
- এই বৈশিষ্ট্যগুলি ঠিক করার জন্য উপযুক্ত
<queries>এন্ট্রিগুলি প্রবর্তন করুন।
প্যাকেজ ফিল্টারিংয়ের জন্য লগ বার্তা কনফিগার করুন
অ্যাপের ডিফল্ট দৃশ্যমানতা আপনার অ্যাপকে কীভাবে প্রভাবিত করে সে সম্পর্কে আরও বিশদ জানতে, আপনি প্যাকেজ ফিল্টারিংয়ের জন্য লগ বার্তা সক্ষম করতে পারেন। আপনি যদি অ্যান্ড্রয়েড স্টুডিওতে একটি পরীক্ষামূলক অ্যাপ বা ডিবাগযোগ্য অ্যাপ তৈরি করেন, তাহলে সিস্টেম লগ আপনার জন্য এই ক্ষমতা প্রদান করে । অন্যথায়, আপনি এটি ম্যানুয়ালি সক্ষম করতে টার্মিনাল উইন্ডোতে নিম্নলিখিত কমান্ডটি চালাতে পারেন:
adb shell pm log-visibility --enable PACKAGE_NAME
তারপর, যখনই প্যাকেজগুলি PackageManager অবজেক্টের রিটার্ন মান থেকে ফিল্টার করা হয়, তখন আপনি লগক্যাটে নিম্নলিখিতটির মতো একটি বার্তা দেখতে পাবেন:
I/AppsFilter: interaction: PackageSetting{7654321 \
com.example.myapp/12345} -> PackageSetting{...} BLOCKED