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

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

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

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

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

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

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

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

adb shell dumpsys package queries

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