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

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

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

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

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

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

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

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

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

פוסטים בבלוגים