הרשאות של 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

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

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

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

  • com.google.heart_rate.bpm

בקשת הרשאות ל-Android

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

כדי לגשת לסוגי הנתונים שלמעלה באמצעות ממשקי Google Fit API, תצטרכו להטמיע לוגיקה לטיפול בבקשות הרשאות של 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"/>