הרשאות של Android

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

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

דוגמה למסך הסכמה להרשאות ב-Android
איור 1. מסך ההסכמה להרשאות ב-Android.

סוגי נתונים שנדרשות לגביהם הרשאות ב-Android

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

  • כדי לתעד את סוגי הנתונים האלה:

    • com.google.step_count.delta
    • com.google.step_count.cumulative
    • com.google.step_count.cadence
    • com.google.activity.segment
    • com.google.calories.expended
  • כדי לקרוא את סוגי הנתונים האלה:

    • com.google.step_count.delta
    • com.google.step_count.cumulative
    • com.google.step_count.cadence
    • com.google.activity.segment
    • com.google.activity.exercise

כדי לגשת לסוגי הנתונים האלה, צריך לבקש את הרשאת Android‏ ACCESS_FINE_LOCATION:

  • כדי לקרוא את סוגי הנתונים האלה:
    • com.google.distance.delta
    • com.google.location.sample
    • com.google.location.bounding_box
    • com.google.speed

כדי לתעד את סוגי הנתונים האלה, צריך לבקש את הרשאת Android‏ BODY_SENSORS:

  • com.google.heart_rate.bpm

שליחת בקשה להרשאות Android

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

כדי לגשת לסוגי הנתונים שלמעלה באמצעות Google Fit APIs, צריך להטמיע לוגיקה לטיפול בבקשות להרשאות Android גם ב-Android 10 וגם בגרסאות קודמות של Android. בדוגמאות האלה נעשה שימוש בהרשאה ACTIVITY_RECOGNITION.

Android 10

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

  1. מוסיפים את ההרשאה לקובץ המניפסט.

    <uses-permission android:name="android.permission.ACTIVITY_RECOGNITION"/>
    
  2. בודקים אם ההרשאה ניתנה:

    if (ContextCompat.checkSelfPermission(thisActivity, Manifest.permission.ACTIVITY_RECOGNITION)
              != PackageManager.PERMISSION_GRANTED) {
          // Permission is not granted
    }
    
  3. אם ההרשאה עדיין לא ניתנה, צריך לבקש אותה:

    ActivityCompat.requestPermissions(thisActivity,
                arrayOf(Manifest.permission.ACTIVITY_RECOGNITION),
                MY_PERMISSIONS_REQUEST_ACTIVITY_RECOGNITION)
    

‫Android מגרסה 9 ומטה

כדי שהאפליקציה תוכל לטרגט לרמת API‏ 28 ומטה:

  1. שולחים בקשה להרשאה com.google.android.gms.permission.ACTIVITY_RECOGNITION.

  2. מוסיפים את ההרשאה לקובץ המניפסט.

    <uses-permission android:name="android.gms.permission.ACTIVITY_RECOGNITION"/>