প্যাকেজ দৃশ্যমানতার আচরণ পরীক্ষা করুন

যদি আপনার অ্যাপ অন্য অ্যাপের সাথে ইন্টারঅ্যাকশনের উপর নির্ভর করে তার ব্যবহারের ক্ষেত্রে, তাহলে Android 11 (API লেভেল 30) এবং উচ্চতর ক্ষেত্রে প্যাকেজ দৃশ্যমানতা পরিবর্তন কীভাবে আপনার অ্যাপকে প্রভাবিত করে তা পরীক্ষা করার জন্য এটি কার্যকর।

এই নির্দেশিকাটি আচরণের পরিবর্তনগুলি কীভাবে পরীক্ষা করা যায় সে সম্পর্কে কিছু পরামর্শ দেয় এবং আপনার অ্যাপ কীভাবে প্রভাবিত হতে পারে তা আরও দানাদার স্তরে নির্ধারণ করতে লগ বার্তাগুলি কনফিগার করতে সহায়তা করে।

আচরণের পরিবর্তন পরীক্ষা করুন

এই আচরণের পরিবর্তন আপনার অ্যাপকে প্রভাবিত করে কিনা তা পরীক্ষা করতে, নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:

  1. Android Studio 3.6.1 বা উচ্চতর ইনস্টল করুন।
  2. অ্যান্ড্রয়েড স্টুডিও সমর্থন করে এমন গ্রেডলের সর্বশেষ সংস্করণ ইনস্টল করুন।
  3. আপনার অ্যাপের targetSdkVersion 30 বা তার বেশি সেট করুন।
  4. আপনার অ্যাপের ম্যানিফেস্ট ফাইলে <queries> উপাদানটি অন্তর্ভুক্ত করবেন না।
  5. getInstalledApplications() অথবা getInstalledPackages() কল করুন। উভয় পদ্ধতি সফল হলে একটি ফিল্টার করা তালিকা ফেরত দেয়।
  6. দেখুন আপনার অ্যাপের কোন বৈশিষ্ট্যগুলো কাজ করছে না।
  7. সেই বৈশিষ্ট্যগুলি ঠিক করতে উপযুক্ত <queries> এন্ট্রিগুলি প্রবর্তন করুন৷

প্যাকেজ ফিল্টারিংয়ের জন্য লগ বার্তা কনফিগার করুন

অ্যাপগুলির ডিফল্ট দৃশ্যমানতা কীভাবে আপনার অ্যাপকে প্রভাবিত করে সে সম্পর্কে আরও বিশদ আবিষ্কার করতে, আপনি প্যাকেজ ফিল্টারিংয়ের জন্য লগ বার্তাগুলি সক্ষম করতে পারেন৷ আপনি যদি অ্যান্ড্রয়েড স্টুডিওতে একটি পরীক্ষামূলক অ্যাপ বা ডিবাগযোগ্য অ্যাপ তৈরি করেন, তাহলে সিস্টেম লগ আপনার জন্য এই ক্ষমতা প্রদান করে । অন্যথায়, আপনি ম্যানুয়ালি সক্ষম করতে একটি টার্মিনাল উইন্ডোতে নিম্নলিখিত কমান্ডটি চালাতে পারেন:

adb shell pm log-visibility --enable PACKAGE_NAME

তারপর, যখনই PackageManager অবজেক্টের রিটার্ন মানগুলি থেকে প্যাকেজগুলি ফিল্টার করা হয়, আপনি লগক্যাটে নিম্নলিখিতগুলির মতো একটি বার্তা দেখতে পাবেন:

I/AppsFilter: interaction: PackageSetting{7654321 \
  com.example.myapp/12345} -> PackageSetting{...} BLOCKED