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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

אינדיקטורים

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

זיהוי מיקום המסך של האינדיקטורים

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

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

  • כשהמשתמש משבית את הגישה למצלמה, האפליקציה מקבלת פיד מצלמה ריק.
  • כשהמשתמש משבית את הגישה למיקרופון, האפליקציה מקבלת אודיו שקט. בנוסף, חיישני תנועה rate-limited, בין אם אתם מצהירים על 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);