סינון לפי הרשאות גישה של חבילות ב-Android

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

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

חשיפת האפליקציה המוגבלת משפיעה על התוצאות שמוחזרות על ידי שיטות שמספקות מידע על אפליקציות אחרות, כמו queryIntentActivities(),‏ getPackageInfo() ו-getInstalledApplications(). החשיפה המוגבלת משפיעה גם על אינטראקציות מפורשות עם אפליקציות אחרות, כמו הפעלת שירות של אפליקציה אחרת.

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

במקרים נדירים שבהם האלמנט <queries> לא מספק חשיפה מספקת של החבילה, אפשר להשתמש בהרשאה QUERY_ALL_PACKAGES. אם תפרסמתם את האפליקציה ב-Google Play, השימוש של האפליקציה בהרשאה הזו נתון לאישור.

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

מקורות מידע נוספים

למידע נוסף על חשיפה של חבילות ב-Android, אפשר לעיין במאמרים הבאים:

פוסטים בבלוג