הרשאות Android נועדו להגן על הפרטיות של משתמשי Android. הן שולחות למשתמשים הנחיות כשאפליקציות רוצות לגשת לסוגי נתונים של מידע אישי רגיש כמו אנשי קשר או תמונות, וגם לתכונות מערכת כמו זיהוי מיקום או זיהוי צעדים. המשתמשים מעניקים את ההרשאות האלה בפעם הראשונה שהם מורידים את האפליקציה.
אם האפליקציה צריכה גישה לאחד מסוגי הנתונים האלה (קבוצת משנה של סוגי הנתונים Google Fit), צריך לבקש את ההרשאה הרלוונטית ל-Android לפני שמבקשים את הרשאות ה-OAuth. מידע נוסף מפורט בהמשך.
![דוגמה למסך ההסכמה להרשאות ב-Android](https://developers.google.cn/static/fit/images/android_permissions.png?authuser=0000&hl=he)
סוגי נתונים שדורשים הרשאות ב-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 ומעלה, לבקש הרשאה מהמשתמש ולרשום את ההרשאה בקובץ המניפסט של האפליקציה.
מוסיפים את ההרשאה לקובץ המניפסט.
<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION"/>
כאן אפשר לבדוק אם ההרשאה הוענקה:
if (ContextCompat.checkSelfPermission(thisActivity, Manifest.permission.ACTIVITY_RECOGNITION) != PackageManager.PERMISSION_GRANTED) { // Permission is not granted }
אם עוד לא הוענקה הרשאה, יש לבקש את ההרשאה:
ActivityCompat.requestPermissions(thisActivity, arrayOf(Manifest.permission.ACTIVITY_RECOGNITION), MY_PERMISSIONS_REQUEST_ACTIVITY_RECOGNITION)
Android מגרסה 9 ומטה
כדי שהאפליקציה תוכל לטרגט לרמת API 28 ומטה:
צריך לבקש הרשאה ל-
com.google.android.gms.permission.ACTIVITY_RECOGNITION
.מוסיפים את ההרשאה לקובץ המניפסט.
<uses-permission android:name="android.gms.permission.ACTIVITY_RECOGNITION"/>