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

אם האפליקציה שלכם מסתמכת על אינטראקציות עם אפליקציות אחרות כדי להשלים את תרחישי השימוש שלה, כדאי לבדוק איך השינויים בהרשאות הגישה לחבילה ב-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