بدانید کدام بسته ها به طور خودکار قابل مشاهده هستند

سیستم به طور خودکار برخی از برنامه‌ها را قابل مشاهده می‌کند تا برنامه شما بتواند بدون نیاز به تعریف عنصر <queries> با آنها تعامل داشته باشد. این رفتار به پشتیبانی از قابلیت‌های اساسی و موارد استفاده رایج کمک می‌کند.

انواع برنامه‌هایی که به طور خودکار قابل مشاهده هستند

انواع برنامه‌های زیر همیشه برای برنامه شما قابل مشاهده هستند، حتی اگر برنامه شما اندروید ۱۱ (سطح API 30) یا بالاتر را هدف قرار دهد:

  • اپلیکیشن خودتان.
  • برخی از بسته‌های سیستمی ، مانند ارائه‌دهنده رسانه، که عملکردهای اصلی اندروید را پیاده‌سازی می‌کنند.
  • برنامه‌ای که برنامه شما را نصب کرده است.
  • هر برنامه‌ای که با استفاده از متد startActivityForResult() یک اکتیویتی را در برنامه شما راه‌اندازی می‌کند، همانطور که در راهنمای مربوط به دریافت نتیجه از یک اکتیویتی توضیح داده شده است.
  • هر برنامه‌ای که سرویسی را در برنامه شما شروع یا به آن متصل می‌شود.
  • هر برنامه‌ای که به یک ارائه‌دهنده محتوا در برنامه شما دسترسی پیدا می‌کند.
  • هر برنامه‌ای که دارای یک ارائه‌دهنده محتوا باشد که به برنامه شما مجوزهای URI برای دسترسی به آن اعطا شده باشد.
  • هر برنامه‌ای که از برنامه شما ورودی دریافت می‌کند. این مورد فقط زمانی اعمال می‌شود که برنامه شما ورودی را به عنوان یک ویرایشگر روش ورودی ارائه دهد.

بسته‌های سیستمی که به طور خودکار قابل مشاهده هستند

برخی از بسته‌های سیستمی که عملکردهای اصلی اندروید را پیاده‌سازی می‌کنند، حتی زمانی که برنامه شما اندروید ۱۱ یا بالاتر را هدف قرار می‌دهد، به طور خودکار برای برنامه شما قابل مشاهده هستند. مجموعه خاص بسته‌ها به دستگاهی که برنامه شما را اجرا می‌کند بستگی دارد.

برای مشاهده لیست کامل بسته‌های مربوط به یک دستگاه خاص، دستور زیر را در ترمینال دستگاه توسعه خود اجرا کنید:

adb shell dumpsys package queries

در خروجی دستور، بخش forceQueryable را پیدا کنید. این بخش شامل فهرستی از بسته‌هایی است که دستگاه به طور خودکار برای برنامه شما قابل مشاهده کرده است.