הרשאות של 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, על הרשאת זיהוי פעילות גופנית, על הרשאת מיקום מדויק ועל הרשאת גישה לחיישנים גופניים.

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