Разрешения Android направлены на защиту конфиденциальности пользователя Android. Они сообщают пользователю, когда приложения хотят получить доступ к типам данных для конфиденциальных данных, таких как контакты или фотографии, а также к системным функциям, таким как определение местоположения или определение шагов. Пользователи предоставляют эти разрешения при первой загрузке вашего приложения.
Если вашему приложению требуется доступ к любому из этих типов данных (подмножество типов данных Google Fit), запросите соответствующее разрешение Android, прежде чем запрашивать разрешения OAuth. См. ниже .
![Пример экрана согласия на доступ к разрешениям Android](https://developers-dot-devsite-v2-prod.appspot.com/static/fit/images/android_permissions.png?authuser=7&hl=ru)
Типы данных, для которых требуются разрешения 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
-
Чтобы получить доступ к этим типам данных, вам необходимо запросить разрешение Android ACCESS_FINE_LOCATION
:
- Чтобы прочитать эти типы данных:
-
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
.
Андроид 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"/>