رفتار مشاهده بسته را آزمایش کنید

اگر برنامه شما برای تکمیل موارد استفاده خود به تعامل با سایر برنامه‌ها متکی است، بررسی اینکه تغییرات قابلیت مشاهده بسته در اندروید ۱۱ (سطح API 30) و بالاتر چگونه بر برنامه شما تأثیر می‌گذارد، مفید خواهد بود.

این راهنما همچنین پیشنهادهایی در مورد نحوه آزمایش تغییرات رفتاری ارائه می‌دهد و به شما کمک می‌کند تا پیام‌های لاگ را پیکربندی کنید تا در سطح جزئی‌تری مشخص شود که برنامه شما چگونه ممکن است تحت تأثیر قرار گیرد.

تغییرات رفتاری را آزمایش کنید

برای آزمایش اینکه آیا این تغییر رفتار روی برنامه شما تأثیر می‌گذارد یا خیر، مراحل زیر را انجام دهید:

  1. اندروید استودیو ۳.۶.۱ یا بالاتر را نصب کنید.
  2. آخرین نسخه Gradle که اندروید استودیو پشتیبانی می‌کند را نصب کنید.
  3. targetSdkVersion برنامه خود را روی 30 یا بالاتر تنظیم کنید.
  4. عنصر <queries> را در فایل مانیفست برنامه خود قرار ندهید.
  5. فراخوانی getInstalledApplications() یا getInstalledPackages() . هر دو روش در صورت موفقیت، یک لیست فیلتر شده را برمی‌گردانند.
  6. ببینید کدام ویژگی‌های برنامه شما کار نمی‌کنند.
  7. ورودی‌های <queries> مناسب را برای رفع آن ویژگی‌ها معرفی کنید.

پیکربندی پیام‌های لاگ برای فیلتر کردن بسته‌ها

برای کشف جزئیات بیشتر در مورد چگونگی تأثیر قابلیت مشاهده پیش‌فرض برنامه‌ها بر برنامه شما، می‌توانید پیام‌های گزارش را برای فیلتر کردن بسته فعال کنید. اگر در حال توسعه یک برنامه آزمایشی یا برنامه قابل اشکال‌زدایی در اندروید استودیو هستید، گزارش سیستم این قابلیت را برای شما فراهم می‌کند . در غیر این صورت، می‌توانید دستور زیر را در یک پنجره ترمینال اجرا کنید تا آن را به صورت دستی فعال کنید:

adb shell pm log-visibility --enable PACKAGE_NAME

سپس، هر زمان که بسته‌ها از مقادیر بازگشتی یک شیء PackageManager فیلتر شوند، پیامی مشابه پیام زیر در Logcat مشاهده خواهید کرد:

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