הרשאות של 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 גם ל-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"/>