בדיקת התנהגות החשיפה של החבילה

אם האפליקציה שלך מסתמכת על אינטראקציות עם אפליקציות אחרות כדי להשלים את תרחישי השימוש שלה, כדאי לבדוק איך השינויים בחשיפת החבילה ב-Android 11 (רמת API ‏30) ומעלה משפיעים על האפליקציה.

במדריך הזה יש גם הצעות לבדיקת השינויים בהתנהגות, והוא עוזר להגדיר הודעות יומן כדי לקבוע ברמה מפורטת יותר איך האפליקציה שלכם עשויה להיות מושפעת.

בדיקת השינויים בהתנהגות

כדי לבדוק אם השינוי הזה בהתנהגות משפיע על האפליקציה שלכם, צריך לבצע את השלבים הבאים:

  1. מתקינים את Android Studio 3.6.1 או גרסה מתקדמת יותר.
  2. מתקינים את הגרסה העדכנית של Gradle שנתמכת ב-Android Studio.
  3. מגדירים את targetSdkVersion של האפליקציה ל-30 ומעלה.
  4. לא לכלול את הרכיב <queries> בקובץ המניפסט של האפליקציה.
  5. מתקשרים אל getInstalledApplications() או אל getInstalledPackages(). אם הפעולה מצליחה, שתי השיטות מחזירות רשימה מסוננת.
  6. לבדוק אילו תכונות באפליקציה לא פועלות.
  7. כדי לתקן את התכונות האלה, צריך להוסיף רשומות מתאימות של <queries>

הגדרת הודעות ביומן לסינון חבילות

כדי לקבל פרטים נוספים על האופן שבו הגדרת ברירת המחדל של הרשאות הגישה לאפליקציות משפיעה על האפליקציה שלכם, אתם יכולים להפעיל הודעות יומן לסינון חבילות. אם אתם מפתחים אפליקציית בדיקה או אפליקציה שאפשר לנפות בה באגים ב-Android Studio, יומן המערכת מספק לכם את האפשרות הזו. אפשר גם להריץ את הפקודה הבאה בחלון הטרמינל כדי להפעיל אותה באופן ידני:

adb shell pm log-visibility --enable PACKAGE_NAME

אחר כך, בכל פעם שחבילות מסוננות מתוך ערכי ההחזרה של אובייקט PackageManager, מוצגת הודעה דומה להודעה הבאה ב-Logcat:

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