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

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

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

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

  • ממתינים לגישה למצלמת המכשיר עד שהמשתמש יאשר את ההרשאה 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 שמכיל את 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.

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

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

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

KotlinJava
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);