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

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

  • com.google.heart_rate.bpm

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

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

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