הסבר על גישה למידע רגיש יותר

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

תכונות המערכת האלה לשמירה על הפרטיות לא אמורות להשפיע על האופן שבו האפליקציה מטפלת בהרשאות שקשורות למיקום, למיקרופון ולמצלמה, כל עוד פועלים לפי השיטות המומלצות לשמירה על הפרטיות.

במיוחד, חשוב לבצע את הפעולות הבאות באפליקציה:

  • צריך להמתין עד שהמשתמש יעניק לאפליקציה את ההרשאה CAMERA כדי לגשת למצלמה של המכשיר.
  • צריך להמתין עד שהמשתמש ייתן לאפליקציה את ההרשאה RECORD_AUDIO כדי לגשת למיקרופון של המכשיר.
  • לפני ששולחים בקשה להרשאה ACCESS_COARSE_LOCATION או להרשאה ACCESS_FINE_LOCATION, צריך להמתין עד שהמשתמש יבצע פעולה בתכונה באפליקציה שמחייבת גישה למיקום, כפי שמתואר במדריך בנושא בקשה להרשאות מיקום.
  • לפני ששולחים בקשה להרשאה ACCESS_BACKGROUND_LOCATION, צריך לחכות עד שהמשתמש יעניק לאפליקציה את ההרשאה ACCESS_COARSE_LOCATION או את ההרשאה ACCESS_FINE_LOCATION.

מרכז בקרת הפרטיות

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

במכשירים נתמכים עם Android מגרסה 12 ואילך, המסך 'מרכז הבקרה של הפרטיות' מופיע בהגדרות המערכת. במסך הזה, המשתמשים יכולים לגשת למסכים נפרדים שבהם מוצג מתי אפליקציות ניגשות למידע על המיקום, המצלמה והמיקרופון. בכל מסך מוצג ציר זמן של הזמנים שבהם אפליקציות שונות ניגשו לסוג מסוים של נתונים. באיור 1 מוצג ציר הזמן של הגישה לנתונים של פרטי המיקום.

הצגת נימוק לגישה לנתונים

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

כדי להסביר למה לאפליקציה שלך נדרשת גישה למיקום, למצלמה ולמיקרופון, צריך לבצע את הפעולות הבאות:

  1. מוסיפים פעילות שמספקת נימוק כלשהו לכך שהאפליקציה מבצעת סוג מסוים של פעולה לגישה לנתונים כשהיא מופעלת. בפעילות הזו, מגדירים את המאפיין android:permission לערך START_VIEW_PERMISSION_USAGE.

    אם האפליקציה שלכם מטרגטת ל-Android מגרסה 12 ואילך, עליכם להגדיר ערך למאפיין android:exported באופן מפורש.

  2. מוסיפים את מסנן הכוונה הבא לפעילות שנוספה:

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

בהתאם למסנני הכוונה שתוסיפו, המשתמשים יראו סמל מידע לצד שם האפליקציה במסכים מסוימים:

  • אם מוסיפים את מסנן ה-Intent שמכיל את הפעולה VIEW_PERMISSION_USAGE, המשתמשים רואים את הסמל בדף ההרשאות של האפליקציה בהגדרות המערכת. אפשר להחיל את הפעולה הזו על כל ההרשאות בסביבת זמן הריצה.
  • אם תוסיפו את מסנן ה-Intent שמכיל את הפעולה VIEW_PERMISSION_USAGE_FOR_PERIOD, המשתמשים יראו את הסמל לצד שם האפליקציה בכל פעם שהאפליקציה תופיע במסך 'מרכז הבקרה של הפרטיות'.

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

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

אינדיקטורים

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

זיהוי המיקום במסך של הסמנים

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

Kotlin

view.setOnApplyWindowInsetsListener { view, windowInsets ->
    val indicatorBounds = windowInsets.getPrivacyIndicatorBounds()
    // change your UI to avoid overlapping
    windowInsets
}

מתגים

המשבצות של ההגדרות המהירות מסומנות בתווית &#39;גישה למצלמה&#39; ובתווית &#39;גישה למיקרופון&#39;
איור 3. לחצני ההפעלה של המיקרופון והמצלמה בהגדרות המהירות.

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

המתגים של המצלמה והמיקרופון משפיעים על כל האפליקציות במכשיר:

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

כשהמשתמש משבית את הגישה למצלמה או למיקרופון, ואז מפעיל אפליקציה שדורשת גישה למידע מהמצלמה או מהמיקרופון, המערכת מזכירה לו שהמתג ברמת המכשיר מושבת.

בדיקת התמיכה במכשיר

כדי לבדוק אם מכשיר תומך במתגים של המיקרופון והמצלמה, מוסיפים את הלוגיקה שמופיעה בקטע הקוד הבא:

Kotlin

val sensorPrivacyManager = applicationContext
        .getSystemService(SensorPrivacyManager::class.java)
        as SensorPrivacyManager
val supportsMicrophoneToggle = sensorPrivacyManager
        .supportsSensorToggle(Sensors.MICROPHONE)
val supportsCameraToggle = sensorPrivacyManager
        .supportsSensorToggle(Sensors.CAMERA)

Java

SensorPrivacyManager sensorPrivacyManager = getApplicationContext()
        .getSystemService(SensorPrivacyManager.class);
boolean supportsMicrophoneToggle = sensorPrivacyManager
        .supportsSensorToggle(Sensors.MICROPHONE);
boolean supportsCameraToggle = sensorPrivacyManager
        .supportsSensorToggle(Sensors.CAMERA);