ההרשאות שקשורות למיקום, למיקרופון ולמצלמה מעניקות לאפליקציה גישה למידע רגיש במיוחד על המשתמשים. הפלטפורמה כוללת כמה מנגנונים, שמתוארים בדף הזה, שיעזרו למשתמשים לקבל מידע ולשלוט באפליקציות שיכולות לגשת למיקום, למיקרופון ולמצלמה.
התכונות האלה של המערכת לשמירה על הפרטיות לא אמורות להשפיע על אופן הטיפול באפליקציה את ההרשאות הקשורות למיקום, למיקרופון ולמצלמה, כל עוד לפעול בהתאם לשיטות המומלצות בנושא פרטיות.
במיוחד, חשוב לבצע את הפעולות הבאות באפליקציה:
- ממתינים לגישה למצלמת המכשיר עד שהמשתמש יאשר את ההרשאה
CAMERA
הרשאה לאפליקציה. - ממתינים לגישה למיקרופון של המכשיר עד שהמשתמש יאשר את
הרשאה
RECORD_AUDIO
לאפליקציה. - צריך להמתין עד שהמשתמש ייצור אינטראקציה עם תכונה באפליקציה שמחייבת
לפני שביקשת
ACCESS_COARSE_LOCATION
או אתACCESS_FINE_LOCATION
הרשאה, כפי שמתואר במדריך כיצד לבקש מיקום הרשאות. - צריך להמתין עד שהמשתמש יעניק לאפליקציה את
ACCESS_COARSE_LOCATION
או ההרשאהACCESS_FINE_LOCATION
לפני בקשתACCESS_BACKGROUND_LOCATION
הרשאה.
מרכז בקרת הפרטיות
במכשירים נתמכים עם Android 12 ואילך, הגדרת פרטיות מסך מרכז הבקרה מופיע בהגדרות המערכת. במסך הזה, המשתמשים יכולים לגשת למסכים נפרדים שבהם מוצג מתי אפליקציות ניגשות למידע על המיקום, המצלמה והמיקרופון. בכל מסך מוצג ציר זמן שמציג מתי אפליקציות שונות ניגשו סוג מסוים של נתונים. איור 1 מציג את ציר הזמן של הגישה לנתונים של מיקום מידע.
הצגת הנימוקים לגישה לנתונים
אתם יכולים להוסיף לאפליקציה הסבר למשתמשים כדי לעזור להם להבין למה לאפליקציה יש גישה למידע על המיקום, המצלמה או המיקרופון. נימוק זה יכול להופיע במסך החדש של מרכז הבקרה להגדרות הפרטיות, במסך ההרשאות של האפליקציה, או בשניהם.
כדי להסביר למה לאפליקציה שלך נדרשת גישה למיקום, למצלמה ולמיקרופון, צריך לבצע את הפעולות הבאות:
מוסיפים פעילות שמספקת נימוק כלשהו לכך שהאפליקציה מבצעת סוג מסוים של פעולה לגישה לנתונים כשהיא מופעלת. בפעילות הזו, מגדירים את המאפיין
android:permission
לערךSTART_VIEW_PERMISSION_USAGE
.אם האפליקציה שלכם מטרגטת ל-Android מגרסה 12 ואילך, עליכם להגדיר ערך למאפיין
android:exported
באופן מפורש.מוסיפים את מסנן Intent הבא לפעילות שנוספה לאחרונה:
<!-- android:exported required if you target Android 12. --> <activity android:name=".DataAccessRationaleActivity" android:permission="android.permission.START_VIEW_PERMISSION_USAGE" android:exported="true"> <!-- VIEW_PERMISSION_USAGE shows a selectable information icon on your app permission's page in system settings. VIEW_PERMISSION_USAGE_FOR_PERIOD shows a selectable information icon on the Privacy Dashboard screen. --> <intent-filter> <action android:name="android.intent.action.VIEW_PERMISSION_USAGE" /> <action android:name="android.intent.action.VIEW_PERMISSION_USAGE_FOR_PERIOD" /> <category android:name="android.intent.category.DEFAULT" /> ... </intent-filter> </activity>
בוחרים מה יוצג בפעילות של נימוקי הגישה לנתונים. לדוגמה, תוכלו להציג את האתר של האפליקציה או מאמר במרכז העזרה. כדי לספק הסבר מפורט יותר על סוגי הנתונים שאליהם האפליקציה ניגשת, ועל המועד שבו התרחשה הגישה, צריך לטפל בפרטים הנוספים שהמערכת כוללת כשהיא מפעילה את הכוונה לשימוש בהרשאה:
- אם המערכת מפעילה את
ACTION_VIEW_PERMISSION_USAGE
, האפליקציה תוכל לאחזר ערך עבורEXTRA_PERMISSION_GROUP_NAME
. - אם המערכת מפעילה את
ACTION_VIEW_PERMISSION_USAGE_FOR_PERIOD
, האפליקציה יכולה לאחזר ערכים עבורEXTRA_PERMISSION_GROUP_NAME
,EXTRA_ATTRIBUTION_TAGS
,EXTRA_START_TIME
ו-EXTRA_END_TIME
.
- אם המערכת מפעילה את
בהתאם למסנני הכוונה שתוסיפו, המשתמשים יראו סמל מידע לצד שם האפליקציה במסכים מסוימים:
- אם מוסיפים את מסנן Intent שמכיל את
VIEW_PERMISSION_USAGE
המשתמשים רואים את הסמל בדף ההרשאות של האפליקציה בהגדרות המערכת. אפשר להחיל את הפעולה הזו על כל ההרשאות בסביבת זמן הריצה. - אם מוסיפים את מסנן Intent שמכיל את
הפעולה
VIEW_PERMISSION_USAGE_FOR_PERIOD
, הסמל מוצג למשתמשים שם האפליקציה בכל פעם שהאפליקציה מופיעה במסך של מרכז הבקרה להגדרות הפרטיות.
כשהמשתמשים לוחצים על הסמל הזה, הפעילות של נקודות המבט של האפליקציה מתחילה.
אינדיקטורים
במכשירים עם Android בגרסה 12 ואילך, כשאפליקציה ניגשת סמל המיקרופון או המצלמה, מופיע סמל בשורת הסטטוס. אם האפליקציה במצב עשיר, הסמל מופיע בפינה השמאלית העליונה של המסך. המשתמשים יכולים לפתוח את ההגדרות המהירות ולבחור הסמל כדי לראות אילו אפליקציות משתמשות כרגע במיקרופון או במצלמה. באיור 2 מוצג צילום מסך לדוגמה שמכיל את הסמלים.
זיהוי המיקום במסך של האינדיקטורים
אם האפליקציה תומכת במצב צפייה immersive או בממשק משתמש במסך מלא, ייתכן שהאינדיקטורים יהיו חופפים לממשק המשתמש של האפליקציה באופן זמני. כדי להתאים את ממשק המשתמש לאינדיקטורים האלה,
המערכת מציגה
getPrivacyIndicatorBounds()
, שקטע הקוד הבא מדגים. השימוש ב-API הזה מאפשר לך
לזהות את הגבולות שבהם האינדיקטורים יכולים להופיע. לאחר מכן ייתכן שתחליטו
לארגן את ממשק המשתמש של המסך באופן שונה.
view.setOnApplyWindowInsetsListener { view, windowInsets -> val indicatorBounds = windowInsets.getPrivacyIndicatorBounds() // change your UI to avoid overlapping windowInsets }
מתגים
במכשירים נתמכים שפועלת בהם מערכת Android מגרסה 12 ואילך, המשתמשים יכולים להפעיל ולהשבית את הגישה של המצלמה והמיקרופ לכל האפליקציות במכשיר בלחיצה על מתג יחיד. המשתמשים יכולים לגשת לאפשרויות ההפעלה/השבתה דרך הגדרות מהירות, כפי שמוצג באיור 3, או דרך מסך הפרטיות בהגדרות המערכת.
המתגים של המצלמה והמיקרופון משפיעים על כל האפליקציות במכשיר:
- כשהמשתמש משבית את הגישה למצלמה, האפליקציה מקבלת פיד מצלמה ריק.
כשהמשתמש משבית את הגישה למיקרופון, האפליקציה מקבלת אודיו שקט. בנוסף, חיישני תנועה מוגבלים בקצב, גם אם מגדירים את ההרשאה
HIGH_SAMPLING_RATE_SENSORS
.
כשהמשתמש משבית את הגישה למצלמה או למיקרופון, ולאחר מכן מפעיל אפליקציה שזקוקה לגישה למידע על המצלמה או המיקרופון, המערכת מזכירה למשתמש שהמתג בכל המכשיר כבוי.
בדיקת התמיכה במכשיר
כדי לבדוק אם מכשיר תומך במתגים של המיקרופון והמצלמה, מוסיפים את הלוגיקה שמופיעה בקטע הקוד הבא:
val sensorPrivacyManager = applicationContext .getSystemService(SensorPrivacyManager::class.java) as SensorPrivacyManager val supportsMicrophoneToggle = sensorPrivacyManager .supportsSensorToggle(Sensors.MICROPHONE) val supportsCameraToggle = sensorPrivacyManager .supportsSensorToggle(Sensors.CAMERA)
SensorPrivacyManager sensorPrivacyManager = getApplicationContext() .getSystemService(SensorPrivacyManager.class); boolean supportsMicrophoneToggle = sensorPrivacyManager .supportsSensorToggle(Sensors.MICROPHONE); boolean supportsCameraToggle = sensorPrivacyManager .supportsSensorToggle(Sensors.CAMERA);