כשאפליקציה מטרגטת ל-Android 11 (רמת API 30) ומעלה ומבצעת שאילתה לגבי מידע על האפליקציות האחרות שמותקנות במכשיר, המערכת מסננת את המידע הזה כברירת מחדל. התנהגות הסינון הזו אומרת שהאפליקציה לא יכולה לזהות את כל האפליקציות שמותקנות במכשיר, וכך מצטמצם המידע הרגיש הפוטנציאלי שהאפליקציה יכולה לגשת אליו אבל לא צריכה אותו כדי למלא את תרחישי השימוש שלה.
בנוסף, חשיפה מסוננת של חבילות עוזרת לחנויות אפליקציות כמו Google Play להעריך את הפרטיות והאבטחה שהאפליקציה מספקת למשתמשים. לדוגמה, ב-Google Play, רשימת האפליקציות המותקנות נחשבת נתונים אישיים ורגישים של משתמשים.
הרשאות גישה מוגבלות לאפליקציה משפיעות על התוצאות שמוחזרות על ידי שיטות שמספקות מידע על אפליקציות אחרות, כמו queryIntentActivities()
, getPackageInfo()
ו-getInstalledApplications()
.
הנראות המוגבלת משפיעה גם על אינטראקציות מפורשות עם אפליקציות אחרות, כמו הפעלת שירות של אפליקציה אחרת.
חלק מהחבילות גלויות באופן אוטומטי. האפליקציה שלכם תמיד יכולה לזהות את החבילות האלה בשאילתות שלה לגבי אפליקציות מותקנות אחרות. כדי להציג חבילות אחרות, צריך להצהיר שהאפליקציה שלך צריכה הרשאת גישה מוגברת לחבילות באמצעות האלמנט <queries>
. בדף תרחישי שימוש יש דוגמאות לאופן שבו אפשר להרחיב את הרשאות הגישה לחבילה באופן סלקטיבי. תהליכי העבודה שמתוארים שם מאפשרים לכם להשלים תרחישי אינטראקציה נפוצים עם אפליקציות תוך שמירה על פרטיות המשתמשים.
במקרים נדירים שבהם הרכיב <queries>
לא מספק מספיק נראות של החבילה, אפשר להשתמש בהרשאה QUERY_ALL_PACKAGES
. אם תפרסם את האפליקציה שלך ב-Google Play, השימוש בהרשאה הזו יצטרך לקבל אישור.
בדף בנושא בדיקת התנהגות הנראות של חבילות מוצעות הצעות לבדיקת שינויים בהתנהגות על סמך נראות החבילות, אם האפליקציה שלכם מסתמכת על אינטראקציות עם אפליקציות אחרות.
מקורות מידע נוספים
כדי לקבל מידע נוסף על חשיפת חבילות ב-Android, אפשר לעיין בחומרים הבאים:
פוסטים בבלוג
- Package visibility in Android 11, available on Medium.