اگر برنامه شما برای تکمیل موارد استفاده خود به تعامل با برنامههای دیگر متکی است، مفید است که آزمایش کنید چگونه تغییرات نمایان بودن بسته در Android 11 (سطح میانای برنامهسازی کاربردی ۳۰) و بالاتر بر برنامه شما تأثیر میگذارد.
این راهنما همچنین پیشنهادهایی درباره نحوه آزمایش تغییرات رفتار ارائه میدهد و به شما کمک میکند پیامهای گزارش را پیکربندی کنید تا در سطح جزئیتری تعیین کنید برنامه شما چگونه ممکن است تحتتأثیر قرار گیرد.
آزمایش کردن تغییرات رفتاری
برای آزمایش اینکه آیا این تغییر رفتار بر برنامه شما تأثیر میگذارد یا نه، مراحل زیر را تکمیل کنید:
- Android Studio نسخه ۳.۶.۱ یا بالاتر را نصب کنید.
- جدیدترین نسخه Gradle را که Android Studio پشتیبانی میکند نصب کنید.
targetSdkVersionبرنامهتان را روی30یا بالاتر تنظیم کنید.- عنصر
<queries>را در فایل مانیفست برنامهتان قرار ندهید. - با
getInstalledApplications()یاgetInstalledPackages()تماس بگیرید. هر دو روش درصورت موفقیتآمیز بودن، فهرست فیلترشدهای را برمیگردانند. - ببینید کدام ویژگیهای برنامهتان کار نمیکند.
- برای رفع مشکل این ویژگیها،
<queries>مناسب را معرفی کنید.
پیکربندی پیامهای گزارش برای فیلتر کردن بسته
برای کسب جزئیات بیشتر درباره اینکه رؤیتپذیری پیشفرض برنامهها چگونه بر برنامه شما تأثیر میگذارد، میتوانید پیامهای گزارش را برای فیلتر کردن بسته فعال کنید. اگر درحال توسعه برنامه آزمایشی یا برنامه قابلاشکالزدایی در Android Studio هستید، گزارش سیستم این قابلیت را برای شما فراهم میکند. درغیراینصورت، میتوانید فرمان زیر را در پنجره ترمینال اجرا کنید تا آن را بهصورت دستی فعال کنید:
adb shell pm log-visibility --enable PACKAGE_NAME
سپس، هرگاه بستهها از مقادیر برگشتی شیء PackageManager فیلتر شوند، پیامی مشابه پیام زیر در Logcat میبینید:
I/AppsFilter: interaction: PackageSetting{7654321 \
com.example.myapp/12345} -> PackageSetting{...} BLOCKED